Mik*_*ike 3 regex string numbers phone-number
我正在尝试匹配包含 0 个或多个破折号的 8 位数字电话号码。例如,以下内容应全部匹配:
12345678
123456-78
1234-5678
1-2-3-4-5-6-7-8
Run Code Online (Sandbox Code Playgroud)
如果我忽略破折号,那就相当简单了。我可以使用:
[\d]{8}
Run Code Online (Sandbox Code Playgroud)
如果我想匹配至少包含 8 个字符(数字和破折号)的字符串,我可以使用:
[\d-]{8,}
Run Code Online (Sandbox Code Playgroud)
但是,在这里我无法设置字符数的上限,因为我不知道该数字有多少个破折号。
我想到的唯一方法是使用:
[0-9][-]?[0-9][-]?[0-9][-]?[0-9][-]?[0-9][-]?[0-9][-]?[0-9][-]?[0-9]
Run Code Online (Sandbox Code Playgroud)
然而,对于(至少在我看来)看似简单的事情来说,这似乎真的很混乱。有没有更简单的方法来做到这一点?
您可以-在每个数字后使用此正则表达式与可选:
^([0-9]-?){8}$
Run Code Online (Sandbox Code Playgroud)
如果您的正则表达式支持,\d则使用:
^(\d-?){8}$
Run Code Online (Sandbox Code Playgroud)