regex permite um caractere (não deveria) por quê?

Olá, Estou tentando criar um regex que reconheça o dinheiro e os números sendo inseridos. Eu tenho que permitir números porque eu estou esperando que números não formatados sejam introduzidos por meio de programação e então eu mesmo os formarei. Por alguma razão, meu regex está permitindo que um caractere de uma letra seja uma possível entrada.

[\$]?[0-9,]*\.[0-9][0-9]

Eu entendo que meu regex aceita o caso em que várias vírgulas são adicionadas e também precisa de dois dígitos após o ponto decimal. Eu já tive uma idéia de como consertar isso. Eu reduzi isso para possivelmente*\. como o problema

EDITAR

Eu encontrei a expressão regex que funcionou[\$]?([0-9,])*[\.][0-9]{2} mas eu ainda não sei como ou porque estava falhando em primeiro lugar

Estou usando o.formatCurrency() para formatar a entrada em um formato de dinheiro. Pode ser encontradoAqui mas ainda me permite usar caracteres alfa, então eu tenho que ainda mascarado usando o$(this).inputmask('Regex', { regex: "[\$]?([0-9,])*[\.][0-9]{2}" }); onde a máscara de entrada é encontradaAqui e$(this) é uma referência a um elemento de entrada do tipo text. Meu código seria algo parecido com isto

<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();
            });

Eu espero que isso ajude. Eu tento criar um JSfiddle mas Idk como adicionar bibliotecas externas / plugin / extensão

questionAnswers(2)

yourAnswerToTheQuestion