seth: RegExp für einen zahlenstring zwischen "0" und "255"

Beitrag lesen

gudn tach!

ich musste eben ganz dringend weg, was essen und bier trinken, weswegen ich jetzt noch mal antworte; halt auf den rest.

~~~javascript

[1]$|            // entweder einstellig : 0-9
   (?:[2][0-9])$|   // oder zweistellig    : 10-99
   (?:^1[0-9][0-9])$|  // oder dreistellig    : 100-199
   (?:^2[0-5][0-5])$   // oder dreistellig    : 200-255

var regXRGBValue = (/[3]$|(?:[4][0-9])$|(?:^1[0-9][0-9])$|(?:^2[0-5][0-5])$/);

alert(regXRGBValue.test("-1"));  // false;
   alert(regXRGBValue.test("0"));   // true;
   alert(regXRGBValue.test("1"));   // true;
   alert(regXRGBValue.test("10"));  // true;
   alert(regXRGBValue.test("99"));  // true;
   alert(regXRGBValue.test("199")); // true;
   alert(regXRGBValue.test("299")); // false;
   alert(regXRGBValue.test("256")); // false;
   alert(regXRGBValue.test("260")); // false;
   alert(regXRGBValue.test("255")); // true;

  
und damit hast du wunderbar demonstriert, welchen nachteil blackbox-tests haben. denn...  
  

> (?:^2[0-5][0-5])$   // oder dreistellig    : 200-255  
  
noe, weil  
  

>    alert(regXRGBValue.test("206")); // false;  
  
moep! ;-)  
  
die gruppierungen (also die klammern) sind bei dir uebrigens ueberfluessig.  
also:  
  /^[0-9]$|^[1-9][0-9]$|^1[0-9][0-9]$|^2[0-4][0-9]$|^25[0-5]$/  
  
(und beachte, dass $ auch "\n" zulaesst)  
  
prost  
seth

  1. 0-9 ↩︎

  2. 1-9 ↩︎

  3. 0-9 ↩︎

  4. 1-9 ↩︎