Laden...

ASP.NET MVC: RegularExpression-Attribute mit Umlauten, ClientValidation fails

Erstellt von console vor 11 Jahren Letzter Beitrag vor 11 Jahren 3.102 Views
C
console Themenstarter:in
40 Beiträge seit 2008
vor 11 Jahren
ASP.NET MVC: RegularExpression-Attribute mit Umlauten, ClientValidation fails

Moin, Ich habe in einer ASP.NET MVC4 Anwendung auf verschiedenen Modelproperties flgd. Annotation:


[StringLength(50), Required]
[RegularExpression(@"^[a-zA-ZäöüÄÖÜ]*$", ErrorMessage = "Muss aus Buchstaben bestehen")]
public string Nachname { get; set; }

Gerendert wird das Ganze wiefolgt, Charset der Seite ist utf-8.:

<input class="small" data-val="true" data-val-length="Das Feld [blabla] von 50 sein." 
data-val-length-max="50" data-val-regex="Muss aus Buchstaben bestehen"


data-val-regex-pattern="^[a-zA-Z&amp;#228;&amp;#246;&amp;#252;&amp;#196;&amp;#214;&amp;#220;]*$"


data-val-required="Das Feld &amp;quot;Nachname&amp;quot; ist erforderlich."
id="Nachname" name="Nachname" type="text" value="" />

Die clientseitige Validierung mittels jquery.validate.unobtrusive.js funktioniert natürlich nicht, da das Pattern seitens jQuery nicht decodiert werden kann. Serverseitig geht es natürlich. Wie kriege ich es hin, dass auch die clientseitige Validierung funktioniert und das RegEx-Pattern der clientseitigen jQuery-Validerung schmeckt?

Hoffe jemand weiß Rat und danke schonmal für jedwede Hilfe...

K
174 Beiträge seit 2006
vor 11 Jahren

Hallo console,

Google liefert als erstes Ergebnis einen Thread, wo von einem Bug in MVC4 die rede ist (ob der jemals behoben wurde: keine Ahnung). Am Ende wird jedoch vorgeschlagen die Sonderzeichen mittels \uxxxx zu escapen...

Evtl. hilft das.

Gruß,
Kani

C
console Themenstarter:in
40 Beiträge seit 2008
vor 11 Jahren

Danke Kani, genau darauf bin ich dann auch gekommen 😁

[StringLength(50), Required]
[RegularExpression(@"^[[a-zA-Z\u00E4\u00F6\u00FC\u00C4\u00D6\u00DC\u00DF]*$"; ErrorMessage = "Muss aus Buchstaben bestehen")]
public string Nachname { get; set; }

Die Unicode-Repräsentanz hierfür zu verwenden ist natürlich alles anderes als leserlich, oder hat die Jemand im Kopf?!? 🤔 Könnte die Expression natürlich auch programmatisch in UTF-16 (hex) convertieren, mal schauen obs mir das Wert ist...

16.807 Beiträge seit 2008
vor 11 Jahren

Mach Dir Doch nen eigenes Attribut, das sowas automatisch umwandelt.