我需要一个符合以下条件的电话验证器:
使用以下正则表达式:^\+?(\d+)(-(\d+)|( \d+)+)?$
它有效,但它也算“+”和“ - ”。
我可以为前+123-45678
10个字符,但只有8个数字。
应始终至少有10个号码
答案 0 :(得分:1)
让我们一次看一部分:
你已经实现了这个目标:
^\+?
您可以使用lookahead:
来实现此目的^(?=[^-]*-?[^-]*$)
我认为它也应该只包含数字(也许是连字符)?再次,使用前瞻:
^(?=(\d-?){10})
全部放在一起:
^\+?(?=[^-]*-?[^-]*$)(?=(\d-?){10})
如果验证规则不那么模糊,那么这个正则表达式将是 lot 更简单。这实际上取决于您的预期用途。