可能重复:
正则表达式将电话号码与国家代码匹配
目前我有这个正则表达式来验证/捕获电话号码:^(\+?(?<country>\d{1,3}?) ?)?(\(?0?(?<area>\d{2})\)? ?)?(?<phone>9?\d{4}[-. ]?\d{4})$
它接受88888888
, 8888-8888
, 8888.8888
, 11 8888-8888
,(11) 88888888
等数字+22 (21) 8888-8888
以及这种格式的每个组合。
问题是:当我通过没有国家代码的区号(像这样:(11) 8888-8888
或11 8888-8888
什至1188888888
)时,它会将区号部分(11)作为国家代码,并将区号留空。
我怎么能做类似country + area + phone
ORarea + phone
但 NOT的事情country + phone
?不做这样的事情:
^(((\(?0?(?<area>\d{2})\)? ?)?|(\+?(?<country>\d{1,3}?) ?)?(\(?0?(?<area>\d{2})\)? ?)?)(?<phone>9?\d{4}[-. ]?\d{4})$
Wich 是 (area+phone|country+area+phone) 但 area 和 country 正则表达式重复两次。