9 Stimmen

Regex erlaubt nur alphanumerische Zeichen.

Ich versuche das folgende mit Regex zu machen...

  • Nur A-Z und 0-9
  • Nicht ein einzelnes Zeichen für sich
  • Nicht nur Zahlen für sich
  • Kann nur Buchstaben für sich sein, aber mindestens 2 Zeichen

Bis jetzt habe ich das http://regex101.com/r/yW1pV8 ...

.*[a-zA-Z]{2,}+.*

Dies scheint meinen Kriterien zu entsprechen, außer dass es mich nicht daran hindert, andere Zeichen wie $ _ ! usw. einzufügen...

Einige korrekte Testdaten sind...

579 International Road
International Road

Einige inkorrekte Daten sind...

679
3
$£
A

Wo mache ich einen Fehler?

10voto

arshajii Punkte 125945

.* passt zu alles, was nicht das ist, was du willst. Außerdem brauchst du das + nicht, da X{n,} bereits bedeutet, dass X mindestens n mal vorkommt. Zuletzt hast du den Teil 0-9 vergessen. Es sieht also so aus, als ob dies funktionieren wird:

[a-zA-Z0-9]{2,}

Einige Regex-Flavors haben [a-zA-Z0-9] als vordefinierte Zeichenklasse. Zum Beispiel in Java ist es \p{Alnum}.

Wenn du auch Leerzeichen erlauben möchtest (gemäß deiner Testdaten), verwende \s:

(?:\s*[a-zA-Z0-9]{2,}\s*)*

0voto

Vivek Chaudhary Punkte 163
var pattern = new RegExp(/^(?=.*\d)(?=.*[a-zA-Z]).{2,}$/);
alert(pattern.test(value) + value);

Für Alpha-Nummer

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X