模式匹配

时间:2011-12-01 14:50:54

标签: javascript regex pattern-matching

  

可能重复:
  A comprehensive regex for phone number validation

我正在尝试使用正确的模式来验证Javascript中的电话号码。 num的格式如下: 电话号码是10位数 电话号码必须以012,013,019,014或016开头。 这个过程对我来说很混乱..任何人都可以帮忙吗? 提前高度赞赏..

5 个答案:

答案 0 :(得分:3)

尝试:

 /^01[23469]\d{7}$/.test("your telephone number");

答案 1 :(得分:2)

此模式应该有效

^01[23469]\d{7}$

答案 2 :(得分:1)

使用这样的正则表达式:

phone.match(/^01[23469]\d{7}/)

其中phone是您的电话号码变量。正则表达式意味着它必须以0开始(^),然后是1,然后是2,3,4,6,9中的任何一个,接着是7个以上的数字。

答案 3 :(得分:0)

我想你想在这里使用正则表达式。

示例/教程here应引导您朝着正确的方向前进。

答案 4 :(得分:0)

如何'回合:

if (/^(?:012|013|019|014|016)\d{7}$/.test(str)) {
    // okay
}

这是一个regular expression(MDC上有good page),它们寻找一个替换(012,013,019,014或016中的任何一个),后面跟着正好七位数。开头的^与字符串的开头匹配,最后的$与结尾匹配,不允许无关的字符。在执行此操作之前,您可能会考虑修剪空白。

为了清晰起见,我使用了替换而不是^01[23946],并允许轻松添加其他前缀。

Live test


旁注:我总是试图阻止人们验证电话号码。当他们需要(需要)输入您的规则不允许的内容时,它最终会让人恼火。此外,通常将10位数的电话号码分组写入,例如在英国,“01234 567 890”(有时写成“01234 56 78 90”)或“020 8123 4567”(有时写成“0208 123 4567”)。在验证之前,您必须剥离内部空间,以允许人们以人们的各种方式编写它们。