我有一個文本框的請求有一個值範圍,我使用的模式^(\d{1,3})\-(\d{1,3})$
似乎工作。正則表達式範圍的數字或只是一個數
在此外現在他們想:從0 to 20
或 正2位數的範圍(01-20 or 1-3 or 1-03 or 01-4 and so on)
限制 正2位數我使用^\d{2}([\-]\d{2})?$
,但我對如何施加限制不清楚0到20
使用C#ASP.Net RegularExpressionValidator。
在此先感謝
我有一個文本框的請求有一個值範圍,我使用的模式^(\d{1,3})\-(\d{1,3})$
似乎工作。正則表達式範圍的數字或只是一個數
在此外現在他們想:從0 to 20
或 正2位數的範圍(01-20 or 1-3 or 1-03 or 01-4 and so on)
限制 正2位數我使用^\d{2}([\-]\d{2})?$
,但我對如何施加限制不清楚0到20
使用C#ASP.Net RegularExpressionValidator。
在此先感謝
模式1 ^(20|[10]?\d)$
可以匹配0-20
PATTERN2 ^(20|[10]?\d)(?:-(20|[10]?\d))?$
能匹配 「0-20」, 「1-20」, 「2-20」 ...... 「20-20」 或0〜20
但是壞消息是pattern2會匹配字符串like「5-1」,「20-3」
對於這個問題,銀色子彈不存在,你需要編寫一些代碼來檢查範圍(獲取字符串從組1和組2中將它們轉換爲整數以進行比較)。
爲20的極限,你必須單獨做數字。確保它是20或第一個數字是0-1,第二個數字是0-9。
即20 | ([0-1]?[0-9])
編輯:那麼整個事情應該是^\d{2}([-](20 | ([0-1]?[0-9])))?$
。
試試這個:([01]?\ d | 2 \ d)。
這可能會做你正在尋找。
這個工作時,我把這個過程組合成兩個正則表達式。我使用了RegularExpressionValidator本身的第二個,它給出了期望的結果。 – jjhayter 2012-08-01 21:04:03
如果我需要一個匹配從18歲到75歲的正則表達式? – 2015-10-23 14:47:55