RegExp Hilfe
carstens
- javascript
Hallo,
seit einiger Zeit vesuch ich einen Ausdruck per .match zu überprüfen, komme aber nicht weiter:
es dürfen nur bestimmte Buchstaben vorkommen u.z. nur einmal dafür aber in beliebiger Reihenfolge
erlaubt sind z.B. nur die Buchstaben: acdfghijks
match: sdafgj
no match: sbdaafgjjx (weil: b, 2 mal a, 2 mal j, x)
habe da schon mal was probiert, aber entweder die RegExp akzeptiert doppelte Buchstaben oder besteht auf die Einhaltung der Reihenfolge.
Kann mir jemand dabei helfen?
Danke Carsten
gudn tach!
es dürfen nur bestimmte Buchstaben vorkommen u.z. nur einmal dafür aber in beliebiger Reihenfolge
erlaubt sind z.B. nur die Buchstaben: acdfghijks
match: sdafgj
no match: sbdaafgjjx (weil: b, 2 mal a, 2 mal j, x)
wenn du ums verrecken regexp einsetzen willst, obwohl das hier afais nicht geschickt waere, koenntest du ein pattern p = /[acdfghijks]/ anlegen, in einer schleife ueber die einzelnen zeichen des strings s jeweils pruefen, ob das aktuelle zeichen gematcht wird und anschliessend (immer noch innerhalb der schleife) jenes zeichen aus dem pattern entfernen.
besser: kein regexp, sondern konventionelle string-funktionen, aber die gleiche idee.
pseudo-code:
// str = gegebener string
erlaubt = 'acdfghijks'; // fasse erlaubt als array of chars auf
for(i=length(str)-1; i>=0; --i){
if(str[i] in erlaubt){
erlaubt = erlaubt ohne str[i]
}else{
alert('moep!');
break;
}
}
das in js umzusetzen ist nicht so schwer. siehe selfhtml fuer string- und array-handling:
http://de.selfhtml.org/javascript/objekte/string.htm
http://de.selfhtml.org/javascript/objekte/array.htm
prost
seth