Ввод денежной суммы
Для ввода в поле денежной суммы использую код:
function proverka(input) { ch = input.value.replace(/[^\d,]/g, ''); //разрешаем вводить только числа и запятую pos1 = ch.indexOf(','); // проверяем, есть ли в строке запятая if (pos1 != -1) { // если запятая есть if ((ch.length - pos1) > 3) { // проверяем, сколько знаков после запятой, если больше 2 то ch = ch.slice(0, -1); // удаляем лишнее } } input.value = ch; // приписываем в инпут новое значение }; Подскажите как изменить код, чтобы можно было вводить только 1 запятую и в качестве разделителя использовать, кроме запятой, еще и точку? Заранее благодарен! |
rielter_al,
Ввод только цифр с запятой или точкой... вариант :write: <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script> function proverka(val) { var reg = [/^\D+/,/[^.,\d]+/g,/[\.,]+/,/(\d+\.\d{2}).*$/], ch = val.replace(reg[0], '').replace(reg[1], '').replace(reg[2], '.').replace(reg[3], '$1'); return ch; }; </script> </head> <body> <input name="" oninput="this.value=proverka(this.value)" > </body> </html> |
рони, спасибо, то что надо!
|
Все делается не так. Пользователь вводит что хочет, а на его счет записывается что получилось.
var isNumber = function(n) { return !isNaN(parseFloat(n)) && isFinite(n); }; //... case 5: // double if (!isNumber(value)) throw errmsg.number; value = parseFloat(value.replace(",", ".")); |
Часовой пояс GMT +3, время: 11:26. |