當我將代碼寫入客戶端時,我從MVC的[RegularExpression]
驗證程序中獲取HTML編碼值。這不是錯誤消息的問題(因爲它應該被編碼爲以後顯示),但它真的搞砸了正則表達式:)在一個字符串字段,我的正則表達式如下:RegularExpression驗證碼編碼正則表達式< & >符號爲< >,導致jQuery驗證失敗
[RegularExpression(@"^[^\<\>]*$", ErrorMessage = "May not contain <,>")]
當此得到由MVC3寫出來,就說明這樣看:
<input ... data-val-regex-pattern="^[^\&lt;\&gt;]*$"
data-val-regex="May not contain &lt;,&gt;" .../>
編輯:
- 因爲編碼的,也有人追趕
<>
,也與上話絆倒了: t
像蒂姆g
像山羊- 可能
;
但我沒有測試它
這個表達式的目的是過濾掉<和>,而不是禁用所有驗證頁面並在服務器端進行預製。該字段接受多種unicode語言,只有12個字符。
我的選擇是這樣的:
- 禁用asp.net一個頁面上輸入的完整性檢查,檢查的操作僅
- 找到一個複雜的正則表達式匹配3+的unicode範圍+/-破折號&數字 - .net + js compat。
- 寫不具有客戶端驗證
- 使用
[Remote]
驗證做在服務器端就像我們對其他領域
我傾向於#做的一個自定義的正則表達式驗證3現在,但我真的想找到一種方法來保持內置功能。有什麼辦法可以禁用這個輸出轉義嗎?
你也可以使用遠程驗證來做到這一點 – cpoDesign
是的,當然。儘管對於正則表達式似乎相當過分,但它應該位於可能解決方案的列表中。 –