regex pozwala jednej postaci (nie powinna) dlaczego?
Witam Próbuję utworzyć wyrażenie regularne, które rozpoznaje wprowadzane pieniądze i liczby. Muszę zezwolić na liczby, ponieważ oczekuję, że liczby niesformatowane będą wprowadzane programowo, a następnie sam je sformatuję. Z jakiegoś powodu mój regex zezwala na wprowadzanie jednoznakowego znaku.
[\$]?[0-9,]*\.[0-9][0-9]
Rozumiem, że mój regex akceptuje przypadek, w którym dodawanych jest wiele przecinków, a także potrzebuje dwóch cyfr po przecinku. Miałem już pomysł, jak to naprawić. Zawęziłem to do prawdopodobnie*\.
jako problem
EDYTOWAĆ
Znalazłem działające wyrażenie wyrażenia regularnego[\$]?([0-9,])*[\.][0-9]{2}
ale wciąż nie wiem jak i dlaczego zawiodło w pierwszej kolejności
Używam.formatCurrency()
sformatować dane wejściowe w formacie pieniężnym. Można go znaleźćtutaj ale nadal pozwala mi używać znaków alfa, więc muszę je dodatkowo zamaskować za pomocą$(this).inputmask('Regex', { regex: "[\$]?([0-9,])*[\.][0-9]{2}" });
gdzie znajduje się maska wprowadzaniatutaj i$(this)
to odwołanie do elementu wejściowego tekstu typu. Mój kod wyglądałby mniej więcej tak
<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();
});
Mam nadzieję, że to pomoże. Próbuję utworzyć JSfiddle, ale Idk, jak dodać zewnętrzne biblioteki / wtyczki / rozszerzenia