2012-12-12 42 views
1

我試圖理解正則表達式的概念,但似乎錯過了某些東西。使用regularexpressions驗證MVC驗證器中的字符串

我想確保有人輸入字段中以.wav結尾的字符串。應該是一個非常簡單的正則表達式。

我試過這個... [RegularExpression(@「$。wav」)] 但似乎是不正確的。任何幫助表示讚賞。謝謝!

回答

1

$是字符串末尾的錨點,因此$.wav沒有任何意義。字符串結尾後不能有任何字符。另外,.對於正則表達式(它只是意味着'任何字符')有特殊的含義,所以你需要逃避它。

嘗試寫

\.wav$ 

如果還是不行,請嘗試如果RegularExpression屬性要整個字符串,或只是其中的一部分匹配

.*\.wav$ 

(這要看。 .*表示'任何字符,0次或更多次')

你應該考慮的另一件事是如何處理字段中的額外空白。用戶有一種可怕的習慣,即在輸入中增加額外的空白空間 - 這就是爲什麼各種功能非常重要的原因。在這裏,RegularExpressionAttribute可能進行評估,然後才能修正輸入,所以你可能要這樣寫:

.*\.wav[\s]*$ 

[\s]*部分是指「任何空白字符(製表符,空格,換行符等)0次或多次」 。

你應該閱讀關於正則表達式的教程。對於這樣的簡單問題,不難理解。當我在學習時,我發現這個網站非常方便:http://www.regular-expressions.info/

+0

非常感謝...原來是這個... [RegularExpression(@「。* wav $」)] – Zenacity

+0

@zenacity請注意'。* wav $ '是匹配以'wav'結尾的字符串,而不是你在問題中指定的'.wav'。 – Oliver