2012-05-31 191 views
4

我想寫一個簡單的正則表達式,但我不知道它爲什麼不起作用。正則表達式數字小於82

用戶輸入2位數字號碼等01092355,直到82。系統將拒絕82之後。

這裏是我的正則表達式,2個數字必須小於82

0[1-9]|[1-8][0-9]|8[0-2] 
+1

我想你也可以簡化爲[0-7] \ d | 8 [0-2]' – rodion

回答

7

你應該有[1-7]的範圍10-79,不[1-8]。不要忘了^$指定字符串的開頭和結尾:

^(0[1-9]|[1-7]\d|8[0-2])$ 
+0

非常感謝。通常我有^和$符號。 – Kadir

+0

順便說一句,如果我嘗試做例如34HOLLAND
我寫了這一個,但它沒有再次工作。
new Regex(@「^(0 [0-9] | [1-7] [0-9] | 8 [0-2] | [a-zA-Z]){0,25} $」); – Kadir

+0

我的意思是以數字開頭,2位數字以字符開頭並以字符結尾。 – Kadir

1

你的第二個部分是錯誤的。它會匹配從10到89,而你希望它從10匹配79,並讓第三方處理80至82

0[1-9]|[1-7][0-9]|8[0-2] 
4

爲什麼不強制轉換爲整數,然後就測試x < 82