带有空格,加号,连字符和括号的数字的正则表达式

时间:2013-11-18 18:12:28

标签: regex phone-number

我正在寻找电话号码的正则表达式,但似乎无法找到我需要的东西。

要求

  • 以加号(可选)开头,例如。 442021234
  • 允许括号(可选),例如。 (44)2021234
  • 允许任意长度的数字
  • 允许数字之间的空格,例如。 (+44)202 1234
  • 允许连字符,例如。 (44)-202-1234

基本上希望允许用户输入带有常见特殊字符的电话号码,并使用JavaScript onBlur将其删除。非常感谢任何帮助。

3 个答案:

答案 0 :(得分:9)

你可以试试这个正则表达式:

/(?:\(?\+\d{2}\)?\s*)?\d+(?:[ -]*\d+)*$/

答案 1 :(得分:7)

考虑以下Regex ......

^\(?\+?[\d\(\-\s\)]+$

祝你好运!

答案 2 :(得分:1)

不是匹配格式,因为你计划剥离字符,为什么不首先删除字符然后验证你有一个你需要的长度?

// strip all non-numeric values
var number = number.replace(/[^\d]/g, '');

// validate we have a number of a specific length
if (number.length == 9) {
    // valid number =]

}

如果您有其他“数字”规则,例如 44开头,那么您可以在剥离字符后使用正则表达式:

if (number.match(/44\d{7}/)) {
    // we have a (+44)* number

}