1
我正在尋找一個正則表達式來接受只有這個數字沒有任何其他格式。正則表達式只允許這種格式123-456-7890
123-456-7890
我試過這個,但也接受差異格式。
Regex regexPhoneNumber = new Regex(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$");
我正在尋找一個正則表達式來接受只有這個數字沒有任何其他格式。正則表達式只允許這種格式123-456-7890
123-456-7890
我試過這個,但也接受差異格式。
Regex regexPhoneNumber = new Regex(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$");
您可以使用
Regex regexPhoneNumber = new Regex(@"\A[0-9]{3}-[0-9]{3}-[0-9]{4}\z");
將接受3個數字開頭的字符串,然後有-
,然後3位數字,-
,然後4位數字與字符串的位置盡頭。
詳細:
\A
- 字符串的開始[0-9]{3}
- 3 ASCII數字-
- 一個連字符[0-9]{3}
- 3位數-
- 又一個連字符[0-9]{4}
- 4位數字\z
- 字符串的最後一個字符(最終的換行符不能跟隨,如$
anchor的情況)。請注意,如果你想使用\d
而不是[0-9]
縮短模式,仍然匹配ASCII只有數字,傳遞RegexOptions.ECMAScript
選項的正則表達式對象。
\ d {3} - \ d {3} - \ d {4}'有什麼問題? – ndn
它看起來像.NET,所以最好避免'\ d'。 –
@WiktorStribiżew,我不知道.NET和'\ d's有問題。你能分享一下嗎? – ndn