2012-09-25 41 views
0

比方說,你在你的ViewModel屬性名稱:RegularExpressionAttribute的JavaScript編碼

[Required(ErrorMessage = "{0} is required.")]  
[RegularExpressionAttribute("[a-zA-Z äöåÄÖÅ]+", ErrorMessage = "Field {0} must contain only letters.")]  
public string Name{ get; set; } 

在某些瀏覽器這個工程,因爲它是沒有得到編碼:

<input class="name valid" data-val="true" data-val-regex="Field Name must contain only letters." data-val-regex-pattern="[a-zA-Z äöåÄÖÅ]+" data-val-required="Name is required." name="Name" type="text" value=""> 

但在某些瀏覽器這個被編碼,正則表達式不起作用

<input class="name valid" data-val="true" data-val-regex="Field Name must contain only letters." data-val-regex-pattern="[a-zA-Z &amp;#228;&amp;#246;&amp;#229;&amp;#196;&amp;#214;&amp;#197;]+" data-val-required="Name is required." name="Name" type="text" value=""> 

我已經調查,發現JavaScript有問題 https://stackoverflow.com/a/4044768/1241400

是否有任何解決方法?

回答

1

你可以嘗試Unicode轉義:

"[A-Za-z \\u00E4\\u00F6\\u00E5\\u00C4\\u00D6\\u00C5]+" 
+0

我只是測試它在IE 8+和Firefox 6+和它的工作。很好的解決方案,謝謝 –