#javascript #jquery #regex #validation
#javascript #jquery #регулярное выражение #проверка
Вопрос:
Я создаю контактную форму, которая будет отправлена с помощью jQuery, и я застрял на одной простой проверке.
Мне нужно проверить поле, в котором должно быть не менее x целых чисел.
Как я могу это сделать?
p.s: пожалуйста, не предлагайте плагин проверки.
Спасибо,
редактировать: это то, что я пробовал, но, я думаю, это неправильно.
var numbercheck = /^(wd{7,14})?$/;
это jsdiffle:
Комментарии:
1. При нажатии кнопки отправки я бы проверил, что значение в поле имеет по крайней мере x целых чисел.
2. @Lazarus — Ну, это то, на чем именно я застрял. Я не знаю, как «проверить, что значение в поле имеет по крайней мере x целых чисел».
3. Поскольку вы застряли, что вы пробовали (опубликуйте свой код) и почему вы не хотите рассматривать плагин проверки?
4. (регулярное выражение уже было одним из тегов :))
5. Не могли бы вы, пожалуйста, добавить пример ввода, чтобы я мог лучше понять, что вы хотите проверить?
Ответ №1:
Используйте regex
диапазон чисел, который вы можете себе позволить в своем поле
Нравится d{5,10} // Here 5 -10 is the range of numbers
function testContact(contact){
contact = contact.replace(/[a-z]*/g,"");
return (contact == contact.match(/d{5,10}/))?true:false;
}
Комментарии:
1. Не забудьте привязать регулярное выражение с помощью
^
и$
2. И это будет проверять только одно целое число с 5-10 цифрами, а не x целых чисел.
3. что-то вроде этого? номер переменной = /^(wd{5,10})?$/; // Но есть проблема, будет ли оно также иметь значение true, если есть также нецелые числа?
4. @Arda — проверить функцию в обновлении.. почему вы включаете
w
??5. Пожалуйста, проверьте мой jsfiddle по вопросу
Ответ №2:
Для сопоставления нескольких целых чисел с использованием регулярного выражения вам понадобится что-то вроде:
^((d*)s*)*$
Ответ №3:
Я бы написал небольшую функцию, которая выполнит эту работу. Обратите внимание, что эта функция вернет false, если у вас есть какие-либо элементы, отличные от int, в inputText
:-
function HasRequiredIntegers(inputText, requiredIntegers) {
var elems = inputText.split(/s /);
var intCount = 0;
var nonIntCount = 0;
for (i = 0; i < elems.length; i ) {
if (((parseFloat(elems[i]) == parseInt(elems[i])) amp;amp; !isNaN(elems[i]))) {
intCount ;
}
else {
nonIntCount ;
}
}
return (intCount >= requiredIntegers amp;amp; nonIntCount == 0);
}
Комментарии:
1. Я сделал, сэр. В вашем примере вы передаете пустую строку и требуете, чтобы в ней было 5 целых чисел. В этих обстоятельствах false является правильным результатом.
Ответ №4:
Попробуйте это
function hasUpTo5(strin){
if( string.replace(/[^0-9]/g, '').length <= 5){
return true
}else{
return false;
}
}
alert( hasUpTo5("fhsfbgurb3utn55nun44") );