2009-02-12 57 views
0

我正在使用ASP.NET 3.5,VB.NET,並試圖通過正則表達式驗證一些輸入。驗證表達式的驗證

我的表達是:

^[a-zA-Z'_''-''/'' ''\''@''&''.'',''ç''Ç''ö''Ö''I''ı''i''İ''ğ''Ğ''ş''Ş''ü''Ü'\s\d]{1,50}$

而且它適用於所有的特殊字符我包括除「-」。它只是不起作用。我嘗試過Internet Explorer和Firefox,同樣的問題。它如何被修復?

+0

在VB.NET中有一些奇怪的我不知道這需要你單引號的所有字符? – 2009-02-12 14:24:23

+4

Plz不使用「Plz」。只是說「請」。 – 2009-02-12 14:37:06

回答

3

爲什麼所有的單引號?他們是不必要的。

^[-a-zA-Z_/\\@&.,çÇöÖIiiIgGsSüÜ\s\d]{1,50}$ 
^  ^^

將「 - 」移動到字符類的開頭或結尾以使其識別。另外,反斜槓需要正確轉義,否則你將無法匹配反斜槓。

請參閱上面的「^」標記。

3

- 字符在這種情況下具有特殊含義。用反斜槓將其跳出或將其列爲塊中的最後一個字符。

1

在正則表達式字符組[...]中,減號表示指定合法字符範圍的範圍。如果你有很多連續的符號(所有的字母,數字等),並且不想全部列出,那麼這很有用。

例如:[0-9] 這將匹配所有數字0,1,2,3,4,5,6,7,8或9,但不是減號。

要直接匹配一個減號,用反斜槓前綴是:

舉例:[0\-9] 這將匹配數字0,負號,或數字9

1

你必須逃脫 - 將字符放在前面。 然後正則表達式將變爲

^[a-zA-Z'_''\-''/'' ''\''@''&''.'',''ç''Ç''ö''Ö''I''ı''i''İ''ğ''Ğ''ş''Ş''ü''Ü'\s\d]{1,50}$