Я заканчиваю форму, которую я должен сделать для своей домашней работы, и когда я думал, что закончил, я обнаружил ошибку.RegEx для фиксированного количества цифр?
Мне нужен RegEx для поля ввода, который возвращал бы предупреждение, если не было 13 цифр.
Хотя я знаю правильный RegExp для этого: /^\d{13}$/
, мне также нужно его игнорировать пустое поле. (Потому что я не хочу, чтобы предупреждение срабатывало, если пользователь переключился на другое поле ввода)
Как раз тогда, когда я думал, что у меня было это: /^$|\d{13}$/
, оказывается, что он вернет предупреждение, если будет меньше чем 13 цифр, но нет, если их больше, в отличие от /^\d{13}$/
, который отлично работает с 14 + цифрами.
Может ли кто-нибудь помочь мне с этим? Благодаря
Вот остальные функции:
function checkNum(box) {
var re= new RegExp(/^$|\d{13}$/);
if(!box.value.match(re)) {
alert("13 numbers are required");
document.getElementById("numbers").value = '';
}
}
А вот поле ввода:
<input type="text" name="numbers" id="numbers" placeholder="Numbers" onFocus="this.placeholder=''" onBlur="checkNum(this); this.placeholder='Numbers'"/>
Вот еще один маршрут ... '^ (\ d {13})? $' – rfornal
Отлично. Так оно и было. Благодаря! Я просто привык к JS. – zduhac