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

questionAnswers(2)

yourAnswerToTheQuestion