0

我找不到任何类似的问题,所以就这样吧。

我需要一个可以验证电话号码的正则表达式。因此,首先只允许使用数字、破折号和“+”。

困难的部分是只允许以以下集合中的任何字符串开头的表达式:

50  
51  
53  
57  
60  
66  
69  
72  
73  
78  
79  
88  

不应允许任何其他没有这些前缀的数字。

我将非常感谢任何提示!谢谢!

4

2 回答 2

4

前缀部分非常简单。^是一个锚点,代表字符串的开始。然后只需附加您想要的模式(我相信您希望允许加号作为第一个字符):

^\+?(?:50|51|53|57|60|66|69|72|73|78|79|88)[\d-]+$

请注意,它与电话号码$相对应,^并确保您的字符串在电话号码后不包含非数字非破折号字符。

当然,最后的模式可以做得更具体,以禁止连续的破折号等。

另请注意,\d在 .NET 中匹配任何 Unicode 数字字符。如果这不是您想要的,请使用[0-9-].

于 2012-11-21T12:55:07.147 回答
1

您需要对此进行调整,但这是一个开始:

^(50|51|53|57|60|66|69|72|73|78|79|88)\d+$
                                       ^
                                       |
                                       -----This part probably needs 
                                            more constraints, depending on 
                                            your format
于 2012-11-21T12:54:45.597 回答