我应该验证一个电话号码。我的约束是这样的。
到目前为止,我使用以下表达式。
var phoneExpression = /^(?=.*[0-9])([0-9\.\-\+\ \(\)\/]+)*$/;
虽然这不符合我的所有限制。请给我一个好的regular expression
。
答案 0 :(得分:2)
除了10个字符和最多17个字符之外,这个应该满足所有约束,因为如果存在,它将不计算+ sing。如果需要,您应该使用替换|
^\+?[0-9][0-9.-]{8,15}[0-9]$
答案 1 :(得分:1)
这符合你所有的书面限制,如果存在,则将+计为字符:
(?=^.{10,17}$)\+?\d[\d.-]+\d$
如果要添加括号和/或空格,只需将它们放在字符类中即可。 我怀疑这是不够的,因为你的描述会接受明显不是电话号码的结构。