2012-10-18 79 views
2

如果我使用RegEx作爲TextBox的掩碼,並且掩碼應該允許格式爲000-XXXXXX,這意味着例如它允許3個字母,一個破折號,然後是6個數字,我如何允許用戶只需要鍵入用於搜索的掩碼的前3個字符,而不是輸入的內容無效,因爲它不滿足完整的RegEx用正則表達式進行部分搜索?

回答

2

可以使正則表達式可選配件:

^\d{3}(?:-\d{0,6})?$ 

說明:

^  # Start of string 
\d{3} # Match 3 digits 
(?:  # Try to match... 
-  # a dash 
\d{0,6} # followed by up to 6 digits 
)?  # but make that part of the match optional 
$  # End of string 
+0

是什麼'??'最後''是什麼意思? – Xaisoft

+0

'(?:...)'是一個非捕獲組(需要下面的'?'(表示「零個或一個」)適用於整個子正則表達式)。 –

+0

非常感謝您的好解釋。如果TextBox已經有一個破折號,因爲這是一個在輸入文本框中指定的掩碼,它是行不通的。 – Xaisoft