我找不到任何与此类似的问题,所以就在这里。
我需要一个正则表达式来验证电话号码。因此,首先只允许使用数字、破折号和"+"。
困难的部分是只允许以以下集合中的任何字符串开头的表达式:
50
51
53
57
60
66
69
72
73
78
79
88
不应允许任何其他没有这些前缀的数字。
我将非常感谢任何提示!谢谢!
前缀部分非常简单。 ^
是一个锚点,表示字符串的开头。然后只需附加您想要的模式(我相信您希望允许加号作为第一个字符):
^+?(?:50|51|53|57|60|66|69|72|73|78|79|88)[d-]+$
请注意,$
与 ^
相对应,可确保字符串在电话号码后不包含非数字非短划线字符。
当然,最后的模式可以更具体地制作,以禁止连续的破折号之类的东西。
另请注意,.NET 中的d
匹配任何 Unicode 数字字符。如果这不是您想要的,请使用 [0-9-]
.
你需要调整这个,但这里有一个开始:
^(50|51|53|57|60|66|69|72|73|78|79|88)d+$
^
|
-----This part probably needs
more constraints, depending on
your format