Estoy buscando una expresión regular que coincida con valores numéricos con un número de decimales definido por el usuario. Actualmente tengoRegex que coincide con el número con hasta 2 decimales
/(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/
que permitirá a tantos lugares como entrada, pero también me gustaría para permitir veces 2 de moneda o 4 o más para otra entrada. La función que estoy construyendo es
var isNumeric = function(val, decimals) {
// decimals is not used yet
var objRegExp = /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
return objRegExp.test(val);
};
[Según MDN] (https://developer.mozilla.org/ en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp # cuantifiers), el cuantificador 'x {n, m}' requiere que "n y m sean ** enteros positivos **" - es decir, 0 no es un límite inferior válido. [Pero la especificación dice] (https://www.ecma-international.org/ecma-262/5.1/#sec-15.10.1) que el tipo de 'n' y' m' es 'DecimalDigits', entonces 0 esta permitido.MDN está equivocado aquí: su expresión cumple con las especificaciones y es segura de usar en cualquier navegador. – hashchange