Соответствие точно 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);