Naja. Das sind hexadezimale Zeichen und wenn Du RGB brauchst, dann willst Du wohl auch dezimale Zahlen haben... Mit ein wenig parseInt-Voodo und dem Wissen, dass die Elemente einer Zeichenkette wie die eines array geholt werden können, geht das:
<script>
function Eingabe() {
var s = document.getElementById( "numbers" ).value.toUpperCase().replace( '#', '' );
var re1 = /[0-9A-F]{6}/
if ( re1.test( s ) ) {
var red = parseInt( '0x' + s[0] ) * 16 + parseInt( '0x' + s[1] );
var green = parseInt( '0x' + s[2] ) * 16 + parseInt( '0x' + s[3] );
var blue = parseInt( '0x' + s[4] ) * 16 + parseInt( '0x' + s[5] );
alert ( 'r=' + red + ' g=' + green + ' b=' + blue );
} else {
alert ( 'Ups! Ungueltige Eingabe.' );
}
}
</script>
<input type="text" pattern='[0-9A-Fa-f]{6}|#[0-9A-Fa-f]{6}' id="numbers" placeholder="hexcode, 6-stellig">
<button onclick='Eingabe()'>Klick</button>