我在SO上尝试了其他问题,但他们似乎无法解决我的问题:
我有以下简化的验证功能
function Validate() {
var pattern = new RegExp("([^\d])\d{10}([^\d])");
if (pattern.test(document.getElementById('PersonIdentifier').value)) {
return true;
}
else {
return false;
}
}
我已经过测试,看看是否正确检索了该值。但它并不匹配10个数字。我不想要或多或少。 仅接受10位数,否则返回false。
我无法让它发挥作用。试图以多种方式调整模式,但不能正确。也许问题出在其他地方?
我在C#中取得了以下成功:
Regex pattern = new Regex(@"(?<!\d)\d{10}(?!\d)")
可接受的例子:
0123456789 ,1478589654 ,1425366989
不接受:
a123456789 ,123456789A ,a12345678a
答案 0 :(得分:24)
您可以尝试使用返回test()
true/false
函数
var str='0123456789';
console.log(/^\d{10}$/.test(str));
OR与String#match()
函数,如果不匹配则返回null
var str='0123456789';
console.log(str.match(/^\d{10}$/));
注意:只需使用^
和$
即可匹配整个字符串。
答案 1 :(得分:7)
您可以使用:
var pattern = /^[0-9]{10}$/;
答案 2 :(得分:6)
你可以试试这个:
var str = "0123456789";
var pattern = new RegExp("^[0-9]{10}$");
pattern.test(str);