sy-br34k3r
Goto Top

RegEx in JavaScript

Wieso ist der Rückgabewert von (/[0-9a-zA-Z]/ bei der Eingabe von Buchstaben mit Sonderzeichen true?

Hallo Zusammen

Ich habe ein Problem in JavaScript mit RegEx. Folgender RegEx habe ich in einer if- Abfrage:
if(text1.match(/[0-9a-zA-Z]/))
Ziel ist es den text1 zu filter, dass nur Zahlen und Buchstaben erlaubt sind. Aus mir schleierhaften Gründen wird auch bei einer Eingabe mit Sonderzeichen true zurückgegeben.
Bsp:
Abcd = true
Acb3 =true
Acd* =true (Wieso das?
/&)*=false
Der Wert text1 wird aus einem HTML-Formular eingelesen und über einen Methodenaufruf übergeben. Wieso wird Acd* als true dargestellt?

Vielen Dank für eure Hilfe.
Lg
Sy-Br34k3r

Content-Key: 113341

Url: https://administrator.de/contentid/113341

Printed on: April 19, 2024 at 06:04 o'clock

Member: dog
dog Apr 06, 2009 at 18:45:56 (UTC)
Goto Top
Weil du keinen Bereich für den Match angegeben hast.
Wenn du die Regel /[0-9a-zA-Z]/ und den String "Keks" hast matcht die RegEx bei "K" und wird beendet.
Wenn du den String "Äha" hast matcht die RegEx beim "h" und ist fertig.
Was du brauchst ist:

/^[0-9a-zA-Z]+$/
(nicht getestet)

Du könntest natürlich auch den Match so umdrehen, dass er zutrifft wenn er ein nichtalphanumerisches Zeichen findet:

/[^0-9a-zA-Z]/
(nicht getestet)

Grüße

Max
Member: Sy-Br34k3r
Sy-Br34k3r Apr 06, 2009 at 19:12:54 (UTC)
Goto Top
Super, Vielen Dank, der RegEx /^[0-9a-zA-Z]+$/ funktioniert einwandfrei.
Gruss
Sy-Br34k3r