У меня есть два текстовых полей (полей ввода), такие как следующие:JQuery предел регулярных выражений пользователю вводить целые числа и числа с плавающей точкой значения
<input type="text" class="txtmin" placeholder="Minimum price">
<input type="text" class="txtmax" placeholder="Maximum price">
Я пытаюсь метод, как это, чтобы предотвратить пользователю вводить следующие значения:
Если пользователь ничего не ввел ни в одно из этих двух значений, он может продолжить.
Если пользователь ввел что-то в txtmin текстовое поле, но не вошел ничего в текстовый максимум, только txtmin одобряется
Как 2, но наоборот происходит
2 и 3 проверки на следующем основании:
- Если пользователь вводит что-либо помимо целочисленного числа или числа с плавающей запятой, отображается ошибка.
Так, например, когда я вхожу: 1 или 2,50 или 1,00 это нормально ...
Количество, которое запятая в нем не может быть разрешено.
Так что я попробовал, как следующее:
$(".btnGo").click(function() {
var r = new RegExp("/^[+-]?\d+(\.\d+)?$/");
var min = $('.txtmin').val();
var max =$('.txtmax').val();
if ($('.txtSearch').val() == "") {
ShowMessage("All fields are required");
return;
} else if ($('.txtmin').val() != "") {
if (!r.test(min)) {
ShowMessage("Entry only number for minimum price!");
return;
}
}
else {
PostAndUpdate($('.txtSearch').val(), $('input[name=type]:checked').val(), $('input[name=shipping]:checked').val(), $('input[name=condition]:checked').val(), $('.txtmin').val(), $('.txtmax').val());
}
});
Но, к примеру, когда я не оставляю оставить значение txtmin пустым, я ввожу:
< < 1,25 <
Я по-прежнему получаю ошибку по какой-то причине ???
Entry only number for minimum price
Что я здесь делаю неправильно?
О, боже, ты должен шутить со мной, только это была проблема? Благодаря !!! :) P.S. Соответствует ли этому регулярному выражению критериям, о которых я упоминал выше, например, он не позволит номера с запятой? – User987
звучит хорошо. Постскриптум Как я могу расширить это регулярное выражение так, чтобы у поля не было значения, но если это произойдет, я бы проверил его в соответствии с регулярным выражением (без использования инструкции extra if). – User987
Используйте '\ d *' (ноль или многие times) вместо '\ d +' (один или несколько раз) - '^ [+ -]? \ d * (\. \ d +)? $' –