我使用以下REGEX验证电话号码
/^(?!([^-]*-){5})(\+\d+)?\s*(\(\d+\))?[- \d]+$/gi
如果输入为 +51(0)989009890 ,则表示有效。但是当输入 0051(0)989009890 时。我是REGEX的新手,所以无法找到可能的解决方案。
如果电话号码符合以下格式,则电话号码有效。
这里x表示数字0-9。 inside()中的数字限制为3。
答案 0 :(得分:2)
如果您的意思也接受0051 (0) 989009890
,问题是(+ \ d +)?意味着在输入中的括号之前处理该位,但它需要存在“+”。您可以通过使用'?'选择它来改变它,例如:
/^(?!([^-]*-){5})(\+?\d+)?\s*(\(\d+\))?[- \d]+$/gi
或者,如果'00xxx'应该是'+ xxx'的替代品(也就是说,那里必须有'+'或'00'),那么你可以使用:
/^(?!([^-]*-){5})(\+\d+|00\d+)?\s*(\(\d+\))?[- \d]+$/gi
答案 1 :(得分:1)
我想这就是你要找的东西
^(?!([^-]*-){5,})(\+?\d+)?\s*(\(\d{1,3}\))?\s*[- \d]+$