正则表达式一个表达式或另一个

时间:2015-07-02 17:40:54

标签: regex

我尝试按以下格式验证电话号码:

1-123-456-7890
123-456-7890
1234567890

我希望所有这三个实例都可以接受,但我不知道如何制作它以便所有破折号或无破折号都是必需的。以下是我到目前为止的情况:

^(1-)?\d{3}-\d{3}-\d{4}$
^[0-9]{10,11}$

有没有办法告诉它在单个正则表达式中验证1个正则表达式还是另一个?

2 个答案:

答案 0 :(得分:2)

^(?:(?:(1-)?\d{3}-\d{3}-\d{4})|[0-9]{10,11})$

你可以尝试一下。参见演示。

https://regex101.com/r/cK4iV0/13

答案 1 :(得分:0)

只计算位数怎么样?您似乎没有按区号,前缀等进行过滤。

在JS中,那将是:

Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init

    AddHandler ddlSecond.SelectedIndexChanged, AddressOf ddlSecond_SelectedIndexChanged

End Sub

10位或更多位数。在美国没有有效数字,从1开始,所以您可以在计数前删除所有前导1,然后检查长度为10。