ursus contionabundo: Integer in Javascript aufteilen

Beitrag lesen

Meinetwegen. Deine Lösung ist schlanker. Ich kann aber noch was nachlegen:

Zusammen mit der Regel, dass im CSS auch Angaben wie #fa6 erlaubt sind (und wie #ffaa66 behandelt werden) ergibt sich:

<script>
function Eingabe() {
	
	
	var s = document.getElementById( "numbers" ).replace( '#', '' );
	var re1 = /^[0-9A-F]{6}$/
	var re2 = /^[0-9A-F]{3}$/
	
	if ( re1.test( s ) )  {
	
		var red   = parseInt( s.substr(0,2), 16 );
		var green = parseInt( s.substr(2,2), 16 );
		var blue  = parseInt( s.substr(4,2), 16 );
		alert ('r=' + red + ' g=' + green + ' b=' + blue );

	} else if ( re2.test( s ) ){

		var red   = parseInt( s[0]+s[0], 16 );
		var green = parseInt( s[1]+s[1], 16 );
		var blue  = parseInt( s[2]+s[2], 16 );
		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}|[0-9A-Fa-f]{3}|#[0-9A-Fa-f]{3}' id="numbers" placeholder="hexcode, 6-stellig">
<button onclick='Eingabe()'>Klick</button>