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