电话号码正则表达式无法正常工作

时间:2013-05-29 20:16:11

标签: javascript regex

我有一个输入符合此模式的表单:

pattern='(\+|00)\d{2,3}[-]\d{8,10}'

一个例子是+999-123456789

我必须使用javascript再次对其进行验证并尝试将模式转换为正则表达式,该示例传递模式但未通过正则表达式。知道为什么?

var check = /^([00|+])([0-9]{2,3})[-]?([0-9]{8,10})$/;

2 个答案:

答案 0 :(得分:1)

您的正则表达式不正确。这样:

[00|+]

相当于

[0|+]

表示“匹配单个字符'0','|'或'+'。”我想你想要:

var check = /^(00|\+)(\d{2,3})-(\d{8,10)$/;

答案 1 :(得分:0)

以下是您转移到RegEx的模式:/(\+|00)\d{2,3}-{0,1}\d{8,10}$/。示例如下。

var number = '+999-123456789';

if (number.match(/(\+|00)\d{2,3}-{0,1}\d{8,10}$/)) {
  alert('Phone number valid!');
} else {
  alert('Phone number invalid.');
}

相关问题