电话号码验证REGEX

时间:2013-01-25 17:04:33

标签: regex jquery-validation-engine

我使用以下REGEX验证电话号码

/^(?!([^-]*-){5})(\+\d+)?\s*(\(\d+\))?[- \d]+$/gi

如果输入为 +51(0)989009890 ,则表示有效。但是当输入 0051(0)989009890 时。我是REGEX的新手,所以无法找到可能的解决方案。

如果电话号码符合以下格式,则电话号码有效。

  1. 0xxxxxxxxxxx
  2. + xx xxxxxxxxxxx
  3. + XXXXXXXXXXXXX
  4. + xx(x)xxxxxxxxxx
  5. 00xxxxxxxxxx
  6. 00xx(x)xxxxxxxxx
  7. 这里x表示数字0-9。 inside()中的数字限制为3。

2 个答案:

答案 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]+$