2017-01-13 2 views
1

Ich bin ein Neuling in Regex. Ich wan't das Feld nur in Englisch ausgefüllt werden (ich will keine chinesischen Schriftzeichen ermöglichen vorgelegt werden) Bisher habe ich mit diesem habe kommen:Regex zum Einschränken von chinesischen Zeichen mit Javascript

<input type="text" id="FirstName" data-val-regex="Please fill out in english." data-val-regex-pattern="[A-Za-z \\u4E00-\\u9FFF\\u3400-\\u4DFF\\uF900-\\uFAFF ]+" /> 

Wie kann Ich weglassen Zahlen und auch Zeichen wie?, - (Fragezeichen, Bindestrich, Komma usw.)

Mit anderen Worten - das Feld sollte nur Alphabete mit einem Leerzeichen zulassen (das wäre ideal für ein Namensfeld nehme ich an?)

Jeder Rat würde sehr geschätzt werden.

+0

Standard regex Muster: 'a-zA-Z' alle Buchstaben,' \ d' eine beliebige Ziffer, '-' ein Bindestrich ist, und' \ 'ist ein Fragezeichen?. – devRicher

+0

Mit "restrict" meinen Sie, dass der gesamte Eintrag chinesische Zeichen sein muss oder ** nicht ** chinesische Zeichen enthalten muss, oder ...? Können Sie klar die Kriterien angeben, die Sie erfüllen möchten? Es kann hilfreich sein, wenn Sie einige Beispiele angeben, denen Sie entsprechen oder nicht entsprechen möchten. –

+0

@torazaburo Ich habe mehr Details in meiner Frage hinzugefügt. – lily

Antwort

0

Try this:

^[a-zA-Z ]+$ 

^ ... $ - Mark String Grenzen (Anfang bis Ende)

[ ]+ - Wer passt zu atleast ein Zeichen von Zeichen in [ ]

+0

Dies erlaubt kein Leerzeichen zwischen den Wörtern mehr und zeigt keinen Fehler, wenn eine Zahl eingegeben wird. – lily

+0

@lily Ich habe Ihre Frage falsch gelesen. Diese Unicode-Bereiche sind völlig überflüssig. 'a-zA-Z' (oder' \ w', in diesem Fall) erlaubt nicht einmal chinesische Schriftzeichen. Ich habe meine Regex geändert, es sollte jetzt für Passwörter wie "Käse 12? -D" funktionieren. – devRicher

+0

Ich denke, er ** ** will nicht Bindestriche und Fragezeichen erlauben, noch die Zahlen und Unterstriche, die "\ w" erlauben würde. –

2

dieses Attribut nicht data-val-regex-pattern ein darstellen Regex, die angibt, was erlaubt ist? Würden in diesem Fall keine Buchstaben und Leerzeichen ausreichen?

"[A-Za-z ]+" 
+2

Wenn es das Attribut HTML5 'pattern' wäre, würde es'^'und' $ 'Anker nicht benötigen, aber wenn er Code hat, der das' data-val-regex-Muster' handhabt, muss es wahrscheinlich verankert sein, es sei denn, dass der Code die Anker selbst irgendwie anwendet. –

+0

@GantTheWanderer Wie können wir sicherstellen, dass nach jedem Wort ein Leerzeichen steht? Wenn ich die Tastatur von Chinesisch auf Englisch umstelle, kann ich keinen Abstand zwischen den Wörtern haben. – lily

+0

Es ist schwer zu bestimmen, was Sie tun wollen, wenn Sie sagen, dass Sie keine chinesischen Schriftzeichen senden wollen, und dann irgendwie zur chinesischen Tastatur wechseln müssen. Kannst du erklären, was du erreichen willst? – GantTheWanderer

Verwandte Themen