0

我有一个表单,其输入遵循此模式:

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

一个例子是+999-123456789

我必须使用javascript再次验证它并尝试将模式转换为正则表达式,该示例通过了模式但未能通过正则表达式。知道为什么吗?

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

2 回答 2

1

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

[00|+]

相当于

[0|+]

并且表示“匹配一个'0'、'|'或'+'的单个字符”。我想你想要:

var check = /^(00|\+)(\d{2,3})-(\d{8,10)$/;
于 2013-05-29T20:22:23.710 回答
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.');
}

于 2014-12-21T04:02:20.010 回答