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.
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.
/^[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)
.
Tags und Links javascript html regex validation