2016-05-01 9 views
1

In meiner benutzerdefinierten Validierung Attribut Ich habe folgende:MVC5 ModelClientValidationRegexRule versagt immer

yield return new ModelClientValidationRegexRule(_invalidCharactersErrorMessage, "/^[A-Za-z0-9\\s]+$/i"); 

Es ist wohl nur aus Buchstaben, Zahlen und Leerzeichen zu akzeptieren. Jetzt auf der HTML-Seite der Dinge, hier ist das, was erzeugt wird.

<input data-val="true" data-val-regex="Only letters, numbers, and spaces are allowed" data-val-regex-pattern="/^[A-Za-z0-9\s]+$/i" data-val-required="Alias is required" id="Alias" name="Alias" placeholder="Alias" type="text" value="" > 

Als ich in das Feld eingeben, ist es immer dann aktiviert wird, und ich sehe die Fehlermeldung, egal was ich eingeben Ist mein regex falsch oder Gibt es hier noch etwas anderes? Von dem, was ich online gelesen habe, scheint meine Regex korrekt zu sein

+0

Hinweis versuchen kann dass du "/ i" überhaupt nicht brauchst, da du bereits "A-Za-z" definiert hast. Übergeben Sie ein einfaches Zeichenfolgenmuster "^ [A-Za-z0-9 \\ s] + $" '. –

Antwort

1

Acc. zu this resource, ist der Wert, den Sie innerhalb data-val-regex-pattern übergeben, ein Zeichenfolgenmuster, kein Regex-Objekt, und es ist bereits verankert.

Also, da Sie bereits Klein ASCII-Buchstaben auf Ihre Zeichenklasse hinzugefügt haben, können Sie nur

verwenden
yield return new ModelClientValidationRegexRule(_invalidCharactersErrorMessage, "[A-Za-z0-9\\s]+"); 

oder (seit Verdoppelung ^ und $ schadet nicht), können Sie auch "^[A-Za-z0-9\\s]+$"

+1

Ich habe es getestet und Sie haben Recht, ich habe weder das^noch das $ bestanden und es funktioniert. Vielen Dank! – Bojan