关于c#:正则表达式可选空白电话号码

Regex optional white space in phone number

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
A comprehensive regex for phone number validation

我非常接近我需要的完整正则表达式。 但是我似乎无法获得可选的空白区域。

正则表达式

1
^(\(?\d{3}\)?\-?\d{3}\-?\d{4})$

要求 - 只有这四个

111-111-1111 - 作品

(111)111-1111 - 作品

(111)111-111 - 不捕获

1111111111 - 作品

如何在括号后添加可选空格?


\(?\b[0-9]{3}\)?[-. ]?[0-9]{3}[-. ]?[0-9]{4}\b如何匹配3334445555333.444.5555333-444-5555333 444 5555(333) 444 5555及其所有组合。

更新

你正在遇到REGEX的限制,因此丑陋的解决方案确实是:

1
(\d{3}-\d{3}-\d{4}|\(\d{3}\)\s?\d{3}-\d{4}|\d{10})


1
^(\(?\d{3}\)*\s?\-?\d{3}\-?\d{4})$

* s表示0或1个空格字符。

编辑:
实际上,我更喜欢这个版本,因为它允许破折号或空格,但不是两者。 还有,? 表示0或1,*表示0或更多:

1
^(\(?\d{3}\)?[\s,\-]?\d{3}\-?\d{4})$


Somtimes最好匹配三个完整表达式中的一个:

<5233>


我不会根据格式处理正则表达式,而是处理输入的数字。这个问题显示了您应该采用的答案:

用于电话号码验证的全面正则表达式