регулярное выражение позволяет один символ (это не должно), почему?
Здравствуйте, я пытаюсь создать регулярное выражение, которое распознает вводимые деньги и цифры. Я должен разрешить числа, потому что я ожидаю, что неформатированные числа будут вводиться программно, а затем я отформатирую их сам. По некоторым причинам мое регулярное выражение разрешает вводить один буквенный символ.
[\$]?[0-9,]*\.[0-9][0-9]
Я понимаю, что мое регулярное выражение принимает случай, когда добавляются несколько запятых, а также нужно две цифры после запятой. У меня уже была идея, как это исправить. Я сузил это до, возможно,*\.
как проблема
РЕДАКТИРОВАТЬ
Я нашел выражение, которое сработало[\$]?([0-9,])*[\.][0-9]{2}
но я до сих пор не знаю, как или почему это не удалось в первую очередь
Я использую.formatCurrency()
отформатировать ввод в денежном формате. Можно найтиВот но это все еще позволяет мне использовать альфа-символы, поэтому я должен еще больше замаскировать его с помощью$(this).inputmask('Regex', { regex: "[\$]?([0-9,])*[\.][0-9]{2}" });
где находится маска вводаВот а также$(this)
является ссылкой на элемент ввода типа text. Мой код будет выглядеть примерно так
<input type="text" id="123" data-Money="true">
//in the script
.find("input").each(function () {
if ($(this).attr("data-Money") == "true") {
$(this).inputmask('Regex', { regex: "[\$]?([0-9,])*[\.][0-9]{2}" });
$(this).on("blur", function () {
$(this).formatCurrency();
});
Надеюсь, это поможет. Я пытаюсь создать JSfiddle, но Idk, как добавить внешние библиотеки / плагин / расширение