我有一个输入符合此模式的表单:
pattern='(\+|00)\d{2,3}[-]\d{8,10}'
一个例子是+999-123456789
我必须使用javascript再次对其进行验证并尝试将模式转换为正则表达式,该示例传递模式但未通过正则表达式。知道为什么?
var check = /^([00|+])([0-9]{2,3})[-]?([0-9]{8,10})$/;
答案 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.');
}