在Javascript中匹配10个数字

时间:2014-08-13 12:31:52

标签: javascript regex

我在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

3 个答案:

答案 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);