【问题标题】:regex for phone number validation?用于电话号码验证的正则表达式?
【发布时间】:2013-01-30 04:51:45
【问题描述】:

我想使用以下格式的正则表达式验证我的电话号码。我用谷歌搜索了这些东西,但我找不到以下格式的正则表达式...

    079-26408300 / 8200
    (079) 26408300
    079 264 083 00 
    9429527462

谁能指导我如何验证上述格式的电话号码字段? 我只想验证上述格式的电话号码,因为现在只使用以下正则表达式 var phone_pattern = /^[a-z0-9]+$/i;

@阿里·沙阿·艾哈迈德

var phone_pattern = "(\d{10})|(\d{3}-\d{8}\s/\s\d{4})|((\d{3}\s){3}\d{2})|((\d{3})\s\d{8})";

这是检查其是否有效的方式

if (!phone_pattern.test(personal_phone))
        {
            $("#restErrorpersonalphone").html('Please enter valid phone number');
            $("#personal_phone").addClass('borderColor');
            flag = false;
        } else {
            $("#restErrorpersonalphone").html('');
            $("#personal_phone").removeClass('borderColor');
        }

它不工作。我是否以错误的方式实施?

【问题讨论】:

  • 去掉除数字以外的所有内容并处理原始数字,没有空格、括号、加号等不是更好吗?
  • 好的..可以说我不想要括号+。但它需要使用 - ..请查看我更新的问题
  • 你在发帖前搜索过这个吗?有很多关于验证电话号码的帖子。
  • 是的,我搜索过,但找不到我想要的方式

标签: regex validation phone-number


【解决方案1】:

让我们从最简单的电话号码开始9429527462
因为它有 10 个字符并且都是数字,所以它的正则表达式可能是 \d{10}

现在是下一个电话号码079 264 083 00。此模式的正则表达式可能是 (\d{3}\s){3}\d{2} 首先,我们期望一组 3 位数字和一个空格重复三次 (\d{3}\s){3},这将覆盖 079 264 083(其中包含空格),所以剩下的将是使用 \d{2} 处理的最后两个字符

对于电话号码(079) 26408300,可以使用\(\d{3}\)\s\d{8} 正则表达式。正则表达式首先查找一个左括号,然后是其中的三个数字,然后是右括号。然后它会查找一个空格,然后查找 8 位数字。

电话号码079-26408300 / 8200 可以使用正则表达式\d{3}-\d{8}\s/\s\d{4} 进行验证。它首先查找 3 位数字,然后是 -,然后是 8 位数字,然后是空格。然后查找 /,然后查找空格,然后查找 4 位数字。

如果您想知道一个用于验证上述所有模式的正则表达式,请告诉我。

最终组合的正则表达式为:

/(\d{10})|(\d{3}-\d{8}\s\/\s\d{4})|((\d{3}\s){3}\d{2})|(\(\d{3}\)\s\d{8})/

【讨论】:

  • 是的..如果你能提供给我一个正则表达式,那么它会很有用..感谢这个精彩的答案与细节
  • 我会尽可能简单。 "(\d{10})|(\d{3}-\d{8}\s/\s\d{4})|((\d{3}\s){3}\d{2 })|((\d{3})\s\d{8})" (请注意不需要引号,我放这些只是为了将正则表达式与评论的其余部分分开)我相信这个正则表达式会做这项工作。我所做的只是将所有提到的正则表达式与 OR 语句结合起来。所以它会匹配所有提到的模式。
  • 你能不能看看我更新的问题在这个正则表达式中很新所以..请帮助我,因为我不知道我是如何把它放在我的 javascript 中的
  • 有一些小错误。首先,不要将您的正则表达式放在引号中。 var phone_pattern = /(\d{10})|(\d{3}-\d{8}\s/\s\d{4})|((\d{3}\s){3}\ d{2})|((\d{3})\s\d{8})/ 用正斜杠开始和结束你的正则表达式。其次,正则表达式本身包含一个正斜杠,尝试用反斜杠和正斜杠替换该正斜杠,“\/” 所以最后代码将如下所示: var phone_pattern = /(\d{10})|(\ d{3}-\d{8}\s\/\s\d{4})|((\d{3}\s){3}\d{2})|((\d{3} )\s\d{8})/
  • 嘿,我刚刚注意到评论中删除了两个反斜杠,所以我用最终的正则表达式更新了我的答案。尝试按照我之前评论中提到的步骤,并将最终的正则表达式替换为我的回答中提到的那个。
【解决方案2】:

直截了当的解决方案很简单,使用 |

String ex = "\\d{3}-\\d{8} / \\d{4}|\\(\\d{3}\\) \\d{8}|...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2014-06-25
    相关资源
    最近更新 更多