10 Stimmen

Javascript regulärer Ausdruck nur für englische & numerische Zeichen

Was ist der einfachste Weg zu überprüfen, ob ein Ausdruck nur englische oder Zahlenzeichen enthält? ohne Leerzeichen und ohne andere Zeichen.

PS - Das erste Zeichen darf keine Zahl sein, egal ob groß oder klein geschrieben.

16voto

Grzegorz Gierlik Punkte 10792

Ich würde verwenden: /^[A-Za-z][A-Za-z0-9]*$/. Hier sind einige Beispiele:

/^[A-Za-z][A-Za-z0-9]*$/.test("Ausdruck");
/^[A-Za-z][A-Za-z0-9]*$/.test("AUSDRUCK");
/^[A-Za-z][A-Za-z0-9]*$/.test("e123xpression");
/^[A-Za-z][A-Za-z0-9]*$/.test("E123xpression");
/^[A-Za-z][A-Za-z0-9]*$/.test("1expression");

Ohne Grenzen (^ und $) stimmt der reguläre Ausdruck auch mit beliebigen Teilzeichenfolgen überein.

EDIT: Ungültiger Ausdruck aktualisiert

14voto

Radagast the Brown Punkte 2982

Am einfachsten:

/^[a-z][a-z0-9]*$/i

Erklärung des Ausdrucks:

  • / - öffnen des Ausdrucks
  • ^ - der String muss hier starten. Nichts davor
  • [a-z] - finde nur ein Zeichen zwischen a bis z, inklusive
  • [a-z0-9]* - finde eine beliebige Zeichenfolge entweder zwischen a und z, inklusive, oder zwischen 0 und 9, inklusive (der Teil "beliebige Zeichenfolge" ist das * am Ende)
  • $ - der String muss hier enden. Nichts danach
  • / - schließen des Ausdrucks
  • i - der Ausdruck ist nicht auf Groß- und Kleinschreibung empfindlich

getestet mit den folgenden Fällen

var tests = //key = Fall, Wert = erwartete Ergebnisse { "joe" : true //nur Kleinbuchstaben , "JOE" : true //nur Großbuchstaben , "charsAndCaps" : true //gemischte Groß- und Kleinschreibung , "ABC444" : true //Großbuchstaben und Zahlen , "AAaaAA3276" : true //gemischte Groß- und Kleinschreibung mit Zahlen , "111Joe" : false //beginnt mit Zahl , "112345" : false //nur Zahlen , "asaaa$" : false //nicht-alfanumerisches Zeichen am Ende , "asaaa" : false //nicht-lateinisches Zeichen am Ende , "asaa" : false //nicht-lateinisches Zeichen am Ende , "#asaaa" : false //nicht-alfanumerisches Zeichen am Anfang , "asaaa" : false //nicht-lateinisches Zeichen am Anfang , "asaa" : false //nicht-lateinisches Zeichen am Anfang , "aaasaa" : false //nicht-lateinisches Zeichen in der Mitte , "sssaa" : false //nicht-lateinisches Zeichen in der Mitte , "as&&aaa" : false //nicht-alfanumerisches Zeichen in der Mitte , "" : false //leerer String }

Probieren Sie es hier aus: http://jsfiddle.net/erJ4H/161/

3voto

Maxym Punkte 11736

Versuchen Sie dieses:

/^[a-z][a-z\d]*$/i

fügen Sie einige Beispiele hinzu:

/^[a-z][a-z\d]*$/i.test("check#$#"); // false
/^[a-z][a-z\d]*$/i.test("1check"); // false
/^[a-z][a-z\d]*$/i.test("check1"); // true
/^[a-z][a-z\d]*$/i.test("cHEck1"); // true

3voto

MohammadSoori Punkte 1744

/^[A-Za-z\d]+$

/^[A-Za-z\d]+$.test("TEST1"); // true
/^[A-Za-z\d]+$.test("Test2"); // true
/^[A-Za-z\d]+$.test("test3"); // true 
/^[A-Za-z\d]+$.test("4TEST"); // true
/^[A-Za-z\d]+$.test("5Test"); // true
/^[A-Za-z\d]+$.test("6test"); // true 
/^[A-Za-z\d]+$.test("TE7ST"); // true
/^[A-Za-z\d]+$.test("Te8st"); // true
/^[A-Za-z\d]+$.test("te9st"); // true

2voto

Aaron Digulla Punkte 308693

Verwenden Sie dies: [a-zA-Z][a-zA-Z0-9]*

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