Auf regulären Ausdruck prüfen

bauchinj

Erfahrenes Mitglied
Hallo zusammen!

Versuche gerade vergeblich, einen Ausdruck zu prüfen, grundsätzlich geht es eigentlich nur darum, dass der String den ich Prüfe nur Alphanummerische Ausdrücke + '-' und '_' enthalten darf. Will eigentlich nur ein true oder false zurück bekommen - hier mein Ansatz:


Code:
var str = "..."
var expression = /^[a-zA-Z0-9-_]/; 
var result; 

result = expression.test(str);

Freue mich über jede Antwort!
 
Hi,
soviel ich mich erinnern kann, testet
Code:
test()
nur ob der Ausdruck da ist oder nicht.
Also wenn dein Javascript wie folgt aussieht
Code:
var str = "as2dfss_-"
var expression = /(\w.+_+-)/; 
var result; 

result = expression.test(str);
Prüft er ob auch alle Zeichen vorhanden sind, also a-z, 0-9, _, - wenn du ein Zeichen wegnimmst kommt false...

Oder täusch ich mich - ist schon etwas het ;-)

Versuch mal
Code:
\W
soviel ich weiß (auch SelfHTML stimmt mir zu), macht das genau deinen Wunsch:
findet ein Zeichen, das nicht alphanumerisch und auch kein Unterstrich ist (typisch zum Suchen nach illegalen Zeichen bei programmiersprachengerechten selbstvergebenen Namen).

lg
michi
 
Zuletzt bearbeitet:
Hi,

Code:
/[^\w\-]/.test(str)
liefert:
- false, wenn nur gültige Zeichen gefunden werden
- true, wenn ungültige Zeichen enthalten sind

Ciao
Quaese
 
Hier meine Lösung:
Code:
for(var i=0; i < str.length; i++){
	var char = str.charAt(i);
	var ascii = char.charCodeAt(0);
	if((ascii == 45) || (ascii == 95) || (ascii > 47 && ascii < 58) || (ascii > 64 && ascii < 91) || (ascii > 96 && ascii < 123)){
	}
	else{
		return false;
	}
}
return true;
 
Hi.
Hier meine Lösung:
Code:
for(var i=0; i < str.length; i++){
	var char = str.charAt(i);
	var ascii = char.charCodeAt(0);
	if((ascii == 45) || (ascii == 95) || (ascii > 47 && ascii < 58) || (ascii > 64 && ascii < 91) || (ascii > 96 && ascii < 123)){
	}
	else{
		return false;
	}
}
return true;
Warum konvertierst du das in unlesbaren ASCII Code? Du kannst doch gleich schreiben:
Javascript:
var char = str.charAt(i).toLowerCase();

if ('a' <= char && char <= 'z' || char == '-' || ... ) {
  
}
Ob so ein Rattenschwanz dann eleganter ist als ein kurzer reg. Ausdruck muss man sich dann überlegen...

Gruß
 
Zurück