ursus contionabundo: Integer in Javascript aufteilen

Beitrag lesen

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>