So validieren Sie eine Eingabe über den regulären Ausdruck von JavaScript

8

Ich habe ein input type="text" für Namen in meinem HTML-Code. Ich muss sicherstellen, dass es nur eine Zeichenfolge mit Buchstaben von "a" bis "z" und "A" bis "Z" ist, zusammen mit Leerzeichen.

Dies ist mein HTML-Code:

%Vor%

Ich erwarte, dass mein JavaScript in etwa so aussieht:

%Vor%

PS: Reguläre Ausdrücke sind mir nicht wirklich bekannt, also bitte mach eine Erklärung mit dem Code.

    
Zoran777 27.07.2013, 14:54
quelle

6 Antworten

18

Sie können die Javascript test() Methode verwenden, um das Namensfeld zu validieren. Die Methode test() testet auf eine Übereinstimmung in einer Zeichenfolge.

%Vor%

oder

%Vor%     
Konsole 27.07.2013, 14:58
quelle
8

Wenn Sie etwas für moderne Browser erstellen, gibt es in HTML5 etwas sehr angenehmes:

%Vor%

Referenz: Eingabetypen für HTML5-Formulare

Update 17.01.2017:

Alte Browser sind heutzutage ziemlich schwach auf den Marktanteilen. Dies ist eine gute Methode, HTML5-Funktionen anstelle von Kompatibilitätsskripts zu verwenden.

    
Frederik.L 27.07.2013 15:43
quelle
5

überprüfen Sie reguläre Ausdrücke und Muster.

%Vor%     
twinlakes 27.07.2013 14:58
quelle
5

Hier ist ein längerer Regx. Es sucht nach a-z in allen Sprachen Latein etc .. Sie können auch Bindestrich - Unterstrich _ Punkt schreiben. sowie Platz

%Vor%     
Johansrk 07.09.2015 13:22
quelle
2

Ich mag diesen von Klammern :

Ссылка

%Vor%

(Richtige Offenlegung: Ich bin im CoCycles Open-Source-Code-Such-Team. Unser Ziel ist es, Gutes zu tun, Entwicklern zu helfen und Open Source einfacher und schöner für alle zu machen)

    
Yoni 31.03.2016 07:39
quelle
1

/^[A-Z ]+$/i.test(x) macht den Trick entsprechend Ihrer Spezifikation, aber wenn ich Sie wäre, würde ich Bindestriche hinzufügen, zB /^[-A-Z ]+$/i.test(x) , weil doppelläufige Namen sind durchaus üblich. Natürlich würde ich vorschlagen, dies später noch einmal zu wiederholen, sobald JS Unicode-Worterkennung in seiner RegExp unterstützt, um noch mehr Namen zu unterstützen.

BEARBEITEN: Wenn Sie sichergehen wollen, dass der Name nicht schlecht aussieht, z. Es gibt mindestens den Vornamen und den Nachnamen und es gibt keine zusätzlichen Leerzeichen. Sie könnten so etwas tun: /^(?:[-A-Z]+ )+[-A-Z]+$/i.test(x) . Ich erinnere mich auch, dass Sie vielleicht auch Punkte hinzufügen möchten, z. B. "Henry Jr. Jones". Kombiniert mit dem vorherigen wäre dies: /^(?:[-A-Z]+\.? )+[-A-Z]+$/i.test(x) .

    
quinnirill 27.07.2013 15:10
quelle

Tags und Links