Я понял, что выставил счет за управление программным приложением после проверки своей программы. Я заметил следующую ошибку: моя таблица в sqlserver содержит: price numeric (6,2) пользователь моей программы вводит цену как 555,00 - это хорошо. , но когда он положил 555555, это ошибка, поэтому мне нужно указать маску, где мантисса является необязательной от 0 до 999, а десятичная часть программируется 2 или 3 в соответствии с выбором пользователя, я использую JQuery Masked входной плагин, и я не нашли хорошего регулярного выражения, пожалуйста, помогите, я работаю с jsp/servlet.Маска ввода для числовых и десятичных чисел
ответ
Вы можете использовать jquery numeric для номеров.
Текущая версия действительно позволяет то, что вы ищете, но кто-то changed код немного, и она работает:
HTML
<input class="numeric" type="text" />
Javascript
$(".numeric").numeric({ decimal : ".", negative : false, scale: 3 });
Это целое source.
И я подготовил это fiddle, чтобы вы могли видеть, как это работает.
Я пробовал это http://jsfiddle.net/lun471k/4CHfC/but регулярное выражение здесь:/(\ d {1,14}) (\. \ d {1,3 }) {0,1} $/(регулярное выражение) является ложным. Мне нужна ваша помощь – najeh22
Мне нужно просто заставить цифровые цифры до точки до 14 чисел maxmimum: 0.000 to 99999999999999.999 – najeh22
, когда я использую точность 4, я могу ввести до 9999, то, что я хочу иметь с точностью 4, является 99.99 – najeh22
Теперь, когда я лучше понимаю, что вам нужно, вот что я предлагаю. Добавьте обработчик клавиатуры для вашего текстового поля, который проверяет содержимое текстового поля с этим регулярным выражением ^[0-9]{1,14}\.[0-9]{2}$
, и если он не соответствует, сделайте красный фон или покажите текст или что угодно. Вот код, чтобы положить в document.ready
$(document).ready(function() {
$('selectorForTextbox').bind('keyup', function(e) {
if (e.srcElement.value.match(/^[0-9]{1,14}\.[0-9]{2}$/) === null) {
$(this).addClass('invalid');
} else {
$(this).removeClass('invalid');
}
});
});
Вот JSFiddle этого в действии. Кроме того, выполните одну и ту же сторону сервера регулярных выражений, и если она не соответствует, требования не были выполнены. Вы также можете сделать это, чтобы проверить событие onsubmit и не позволить пользователю отправлять страницу, если регулярное выражение не совпало.
Причина несоблюдения маски при вставке текста заключается в том, что это усложняет ситуацию, например. как я упоминал в комментарии, пользователь не может начать вводить действительный ввод, поскольку его начало недействительно. Однако это возможно, но я предлагаю это вместо этого.
/^[0-9]{1,14}\.[0-9]{2}$/ неверно, есть что-то неправильное, потому что я могу ввести сюда числа столько, сколько хочу, буквы тоже – najeh22
Я использую это, но ex не является правильной функцией checkDec (el) { var ex =/^ [0-9] {1,3} \. [0-9] {2} $ /; if (ex.test (el.value) == false) { el.value = el.value.substring (0, el.value.length - 1); } } – najeh22
@ najeh22 Вы можете ввести все, что хотите, но в то время как введенный текст недействителен, фон станет красным, вот что я имею в виду, не применяя маски. Вы все равно должны выполнять валидацию на стороне сервера, так что регулярное выражение должно быть хорошим для проверки на стороне сервера и для предварительной отправки, если вам это нужно. Однако, если вы хотите, чтобы маска реального времени не позволяла вам вводить недопустимое значение, я бы пошел с решением LeftyX, так как это намного сложнее достичь (например, вы должны позволить пользователю ввести '2.', но это не допустимое значение, поэтому проблемы. – Bikonja
с помощью JQuery маска ввода плагин (6 целых и 2 знака после запятой):
HTML:
<input class="mask" type="text" />
JQuery:
$(".mask").inputmask('Regex', {regex: "^[0-9]{1,6}(\\.\\d{1,2})?$"});
Я надеюсь, что это помогает кто-то
Nice Regex, спасибо. – Bigyellowbee
Вы может сделать это с помощью jquery inputmask плагин.
HTML:
<input id="price" type="text">
Javascript:
$('#price').inputmask({alias: 'numeric',
allowMinus: false,
digits: 2,
max: 999.99});
- 1. Маска только для отрицательных чисел
- 2. Маска ввода для Hex
- 3. SuperScript десятичных чисел цен при использовании стандартных числовых форматов строк
- 4. Регулярное выражение для десятичных чисел
- 5. Маска для ввода текста
- 6. Конвертер десятичных чисел DataGrid
- 7. Какая лучшая маска для десятичных цифр?
- 8. Masked Input Plugin и регулярные выражения (для десятичных чисел)
- 9. Маска Delphi для двоичных чисел
- 10. Регулярное выражение для десятичных или десятичных чисел
- 11. Как выполняется внутренний анализ чисел и особенно десятичных чисел?
- 12. Маска ввода вправо налево
- 13. atoi и ведущие 0 для десятичных чисел
- 14. Мне нужно регулярное выражение для ввода числовых десятичных значений и двоеточия для android
- 15. Сортировка массива десятичных чисел и целых чисел
- 16. PyQt: маска ввода QLineEdit для шестнадцатеричного
- 17. Regext помощи для десятичных чисел
- 18. Синтаксис десятичных чисел для форматов
- 19. HTML5 шаблон для ввода (маска)
- 20. Oracle ceil для десятичных чисел
- 21. регулярное выражение для принятия только целых чисел и десятичных чисел
- 22. WP7-Control для ввода числовых данных?
- 23. VBA ввода текста маска
- 24. Проверка JavaScript десятичных чисел
- 25. Маска ввода-вывода
- 26. Какая лучшая маска ввода?
- 27. Проверка десятичных чисел в культуре
- 28. Сравнение двух десятичных чисел
- 29. Угловой перевод десятичных чисел
- 30. Проверка десятичных чисел
Ehm ... если поле базы данных Числовой (6,2), то количество знаков после запятой не может быть «2 или 3 по к выбору пользователя ". Что мне не хватает? –
Да, я изменил его в базе данных (6,3), десятичная двое или третья - только на дисплее. – najeh22
, но проблема такая же: – najeh22