在我国,手机号码的格式如下(XX)XXXX-XXXX
。但是根据输入文本中的模式输入电话号码太主流了。有些人追随,但有些人却没有。我想制作一个正则表达式来捕捉所有可能的情况。现在它看起来像这样:手机正则表达式不能完全正常工作
/^[\(]?\d{2}?[\)]?\d{4}[. -]?\d{4}$/
我准备了一些测试案例来证明正则表达式的功能
# GOOD PHONES #
8432115262
843211 5262
843211.5262
843211-5262
32115262
3211.5262
3211 5262
3211-5262
(84)32115262
(84)3211.5262
(84)3211 5262
(84)3211-5262
# BAD PHONES #
[email protected]#$%*()
()32115262
()1231 3213
()1231.3213
()1231-3213
().3213
()-3213
()3213.
()3213-
3211-5a62
sakdiihbnmwlzi
不幸的是,错误的情况下()32115262
被绕过的正则表达式。 Altought很清楚为什么。这部分[\(]?\d{2}?[\)]?
是可以应对的。从左到右,您可以输入零或一个(
;您可以输入零或两位数字;您可以输入零或一个)
。
我想这部分应该是这样的:如果你把(
,你将不得不输入两位数和)
,否则你可以输入零或两位数。正则表达式世界中可能有类似的东西或类似的语义吗?
预先感谢
谢谢你的解决方案! – 2012-08-03 03:28:12