【问题标题】:Phone number format in JavascriptJavascript中的电话号码格式
【发布时间】:2011-12-07 01:50:09
【问题描述】:

我需要检查格式化电话号码。

+33xxxxxxxxx

0033xxxxxxxxx

编辑0xxxxxxxxx

我怎么能用(out) regex 做到这一点?

【问题讨论】:

  • 可能是处理电话号码的最佳库:code.google.com/p/libphonenumber
  • @JamesAllardice - 这应该是一个答案,而不是评论。
  • 我认为不应该。这不是一个完整的答案,它只是一个有用的参考。

标签: javascript regex phone-number


【解决方案1】:
if (/^(?:(?:\+|00)33|0)\d{9}$/.test(subject)) {
    // Successful match
} else {
    // Match attempt failed
}

【讨论】:

  • 哦!!!很好,但是如果我需要将33 更改为261 或其他值?代码是什么?
  • 如果您仍然希望国家代码后有 9 位数字,那么只需将 261 替换为 33。如果你想同时允许,请使用(?:216|33) 而不是33
  • 是的,但如果是随机值?
  • 如果它是随机的,您要验证它的目的是什么?我认为你需要回过头来考虑一下,并写下确切你做什么和不想匹配。
  • 01 到 300 之间的所有值
【解决方案2】:

这是一个验证您的示例的正则表达式:

/(\+|(00)|0)[0-9]{11}/.test(stringToTest)

【讨论】:

  • 但它也验证了 12345678901。
【解决方案3】:

试试这个正则表达式:/^((\+|00)\d{2})?\d{9}$/

这匹配您给定的每个案例(+YYXXXXXXXXX00YYXXXXXXXXXXXXXXXXXX)。

编辑: 匹配您的编辑:/^((\+|00)\d{2}|0)\d{9}$/

【讨论】:

    【解决方案4】:

    匹配它的正则表达式是这样的

    (0033|\+33|0)?\d{9}
    

    我使用http://regexpal.com/ 进行快速正则表达式测试

    【讨论】:

      【解决方案5】:

      PhoneFormat.com 有一个 javascript 库,其中包含一些格式化函数,您可以轻松地将它们放入您的项目中。它将接受您输入的任何数字并尝试将其转换为 e164 (+ 33252525252),并格式化 (+33 2 52 52 52 52)

      【讨论】:

        猜你喜欢
        • 2012-07-16
        • 2022-11-22
        • 1970-01-01
        • 2016-10-11
        • 2023-01-07
        • 1970-01-01
        • 2013-03-07
        • 1970-01-01
        • 2014-04-01
        相关资源
        最近更新 更多