Tengo un código que me permite emparejar cosas como solo retroceso de dígitos. ¿Cómo puedo cambiar la expresión regular que permitirá presionar "enter" y permite solo 1 coma y después de la coma un máximo de 2 números?
$("[name=price]").keydown(function(e){ if(e.keyCode == 110 || e.keyCode == 190) { e.preventDefault(); $(this).val($(this).val() + ','); } if (/\d|,+|[b]+|-+/i.test(e.key) ){ }else{return false } })
Aquí hay una versión un poco detallada. Esto acepta teclas de flecha, tabulador, enter, modificadores, etc.
$("[name=price]").keydown(function(e) { if (e.keyCode == 110 || e.keyCode == 190 || e.keyCode == 188) { if ($(this).val().indexOf(',') > -1) { return false; } else { e.preventDefault(); $(this).val($(this).val() + ','); } } else if (e.keyCode < 47) { } else if (/\d|,+|-+/i.test(e.key)) { if ($(this).val().indexOf(',') > -1) { if ($(this).val().substr($(this).val().indexOf(',') + 1).length >= 2) { return false; } } } else { return false } })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input name="price" /> <input name="price" /> <input name="price" />