我有一个表单,其输入遵循此模式:
pattern='(\+|00)\d{2,3}[-]\d{8,10}'
一个例子是+999-123456789
我必须使用javascript再次验证它并尝试将模式转换为正则表达式,该示例通过了模式但未能通过正则表达式。知道为什么吗?
var check = /^([00|+])([0-9]{2,3})[-]?([0-9]{8,10})$/;
我有一个表单,其输入遵循此模式:
pattern='(\+|00)\d{2,3}[-]\d{8,10}'
一个例子是+999-123456789
我必须使用javascript再次验证它并尝试将模式转换为正则表达式,该示例通过了模式但未能通过正则表达式。知道为什么吗?
var check = /^([00|+])([0-9]{2,3})[-]?([0-9]{8,10})$/;
您的正则表达式不正确。这个:
[00|+]
相当于
[0|+]
并且表示“匹配一个'0'、'|'或'+'的单个字符”。我想你想要:
var check = /^(00|\+)(\d{2,3})-(\d{8,10)$/;
这是您转移到 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.');
}