Соответствие точно 10 цифр в Javascript

Я пробовал другие вопросы по 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.

Я не могу заставить его работать. Попробовали настроить шаблон несколькими способами, но не могут понять это правильно. Может быть, проблема в другом месте?

У меня был успех в С#:

Regex pattern = new Regex(@"(?<!\d)\d{10}(?!\d)")

Примеры приемлемого:

0123456789, 1478589654, 1425366989

Неприемлемо:

a123456789, 123456789a, A12345678a

Ответ 1

Вы можете попробовать с помощью функции test(), которая возвращает true/false

var str='0123456789';
console.log(/^\d{10}$/.test(str));

ИЛИ с помощью функции String#match(), которая возвращает null, если не соответствует

var str='0123456789';
console.log(str.match(/^\d{10}$/));

Примечание. Просто используйте ^ и $ для соответствия цельной строке.

Ответ 2

Вы можете использовать это:

var pattern = /^[0-9]{10}$/;

Ответ 3

Вы можете попробовать следующее:

var str = "0123456789";
var pattern = new RegExp("^[0-9]{10}$");
pattern.test(str);