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-ID: 113341

Url: https://administrator.de/forum/regex-in-javascript-113341.html

Ausgedruckt am: 25.12.2024 um 02:12 Uhr

dog
dog 06.04.2009 um 20:45:56 Uhr
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
Sy-Br34k3r
Sy-Br34k3r 06.04.2009 um 21:12:54 Uhr
Goto Top
Super, Vielen Dank, der RegEx /^[0-9a-zA-Z]+$/ funktioniert einwandfrei.
Gruss
Sy-Br34k3r