Frage von ElferKern, 44

JavaScript RegExp?

in einem textfeld (input id="pw1") sollte geprüft werden, ob eine der folgenden zeichen vorhanden ist: +-_,.:!?

Dies sollte JavaScript überprüfen und eine Meldung einblenden lassen.

Ich habs jetzt mal mit dem folgenden versucht:

var zeichen = new RegExp([+-_,.:!?]);

Wenn ichs mit zahlen versuche, also:

var zeichen = new RegExp([0-9]);

Versuche, dann scheint es zu funktionieren...

Weiss wer was ich an " var zeichen = new RegExp([+-_,.:!?]); " falsch mache?? :S - ich hab versucht mich darüber zu informieren, aber kapier die beschreibungen ned so wirklich xD

Antwort
von adenosi, 20

Einige Zeichen müssen 'escaped' werden also mit backslash negiert werden weil sie ne Funktion in Regex haben.

z.B.  beim Punkt  regex = \.

ohne den Backslash davor würde der Punkt für ein beliebiges Zeichen stehen.

Alles was in eckigen Klammern müsste oder- Verknüpft sein.

Also regex = [0-9] dürfte nicht für 0 bis 9 sondern für 0 oder - oder 9.

Kommentar von ElferKern ,

Das heisst ganz doof gesagt so? - aber das heisst Grundsätzlich, dass ich das auch mit regex machen kann?

RegExp([\+\-\_\,\.\:\!\?]);
Kommentar von adenosi ,

musst ein bisschen rumprobieren bis es klappt. Der Regex Tester hilft dir vielleicht.

https://regex101.com

bin mir jetzt nicht sicher, aber kann sein dass du nur die Zeichen escapen darfst die auch ne Funktion haben. 

Kommentar von ElferKern ,

danke für die seite! gibt echt gute anweisungen hat jetzt geklappt mit

var zeichen = /(?=.*[+\-_,.:!?])/;
Antwort
von Plueschtier94, 27

bin kein experte. Aber du verstehst da glaube ich was komplett Falsch. 

aber die funktion die du brauchst heißt match()

Kommentar von ElferKern ,

Nein, ich sagte ja, dass es mit Zahlen funktioniert hat. Die Funktion die ich danach verwende heisst .test()

var tzeichen = zeichen.test(text); -- Anschliessen steht in der Variable tzeichen true oder false, das Sollte so sein.

Was ich nicht weiss, ist wie ich

RegExp([+-_,.:!?]);

schreiben muss, damit es richtig interpretiert wird...

Keine passende Antwort gefunden?

Fragen Sie die Community