esebagel Ответов: 2

У меня есть поле суммы, ограниченное только 3 цифрами. Я получаю сообщение в текстовом поле "это плохое значение"


Не зная достаточно о javascript, я попытался внести изменения в код, но это не сработало. Может ли кто-нибудь помочь мне определить, где я могу расширить поле для приема сумм более 123 долларов? Я должен быть в состоянии увидеть $1234.00 или $12345.

Что я уже пробовал:

https://***REDACTED***/buynow.html is the page that is not working correctly.


Вот этот код:

function totalamountdue() {
    var inputs = document.getElementsByTagName("INPUT");
    var runningTotal = 0;
    for (i = 0; i < inputs.length; i++) {
        if (inputs[i].id == "total") { inputs[i].value = runningTotal }
        if (inputs[i].id.indexOf("amount") == 0) {
            if (/^[1-9][0-9]{0,2}(,[0-9]{3})*(\.[0-9]{2})?$/.test(inputs[i].value)) {
                runningTotal += +inputs[i].value;
            } else {
                if (inputs[i].value == "THIS IS A BAD VALUE") { inputs[i].value = ""; }
                if (inputs[i].value) { inputs[i].value = "THIS IS A BAD VALUE"; }
            }
        }

    }
}

2 Ответов

Рейтинг:
17

phil.o

Вы можете попробовать заменить его

if (/^[1-9][0-9]{0,2}(,[0-9]{3})*(\.[0-9]{2})?$/.test(inputs[i].value))
с
if (!isNaN(parseFloat(inputs[i].value)) && isFinite(inputs[i].value))
Использование регулярного выражения для проверки числа-это ужасный выбор.


esebagel

Ты просто чудо! Большое вам спасибо! Он работал безупречно!

phil.o

Пожалуйста. Пожалуйста, отметьте свой вопрос как ответ, если это так.
И, пожалуйста, не ставьте ссылки в своих вопросах, как вы это сделали; вы можете быть помечены как спамер за это. Я отредактировал ссылку, чтобы избежать этого.

Рейтинг:
0

Patrice T

Цитата:
У меня есть поле суммы, ограниченное только 3 цифрами.

Если вы изучите регулярное выражение, то увидите, что ввод не ограничивается 3-значными значениями, вместо 12345 оно принимает 12.345 .

Всего лишь несколько интересных ссылок, которые помогут построить и отладить регулярное выражение.
Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
RegExr: Learn, Build, & Test RegEx[^]
Онлайн-тестер регулярных выражений и отладчик: PHP, PCRE, Python, Golang и JavaScript[^]
Этот пример показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение: Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]
Этот сайт также показывает регулярное выражение в красивом графике, но не может проверить, что соответствует регулярному выражению: Regexper[^]