validate validar validacion texto telefono regulares numeros numero nombre letras formularios expresiones example javascript regex currency

javascript - validar - Validación de moneda Regex



validar texto javascript (2)

El RegEx

// Requires a decimal and commas ^/$?(([1-9]/d{0,2}(,/d{3})*)|0)?/./d{1,2}$ // Allows a decimal, requires commas (?=.*/d)^/$?(([1-9]/d{0,2}(,/d{3})*)|0)?(/./d{1,2})?$ // Decimal and commas optional (?=.*?/d)^/$?(([1-9]/d{0,2}(,/d{3})*)|/d+)?(/./d{1,2})?$ // Decimals required, commas optional ^/$?(([1-9]/d{0,2}(,/d{3})*)|0)?/./d{1,2}$ // *Requires/allows X here also implies "used correctly"

El desglose de RegEx

  • Cuando las partes opcionales son demasiado liberales, tenemos que mirar hacia adelante y garantizar que haya un número: (?=.*/d)
  • Puede o no comenzar con un signo de dólar (supongo que los negativos no son válidos): ^/$?
    • Sigue eso con -? para permitir números negativos
  • Comienza con 1-3 números: [1-9]/d{0,2}
    • Podría ser casi (/d{1,3}) , pero eso permitiría "0,123"
    • Una excepción, puede comenzar con 0 en el caso de "$ 0,50" o "0,50": |0
    • Estas expresiones regulares suponen que varios de los principales 0 no son válidos
  • Cualquier cantidad de números de tres dígitos separados por coma: (,/d{3})*
    • Eliminar ? antes de /. si desea rechazar los números que comienzan con "$".
  • Requiere o permite decimal (uno o dos dígitos): /./d{1,2} o (/./d{1,2})? respectivamente
  • Termine con $ (sin guardar) para asegurarse de que no haya nada después de un número válido (como $ 1,000.00b)

Para usar la expresión regular, use el método de match la cadena y coloque la expresión regular entre dos barras diagonales.

// The return will either be your match or null if not found yourNumber.match(/(?=.)^/$?(([1-9][0-9]{0,2}(,[0-9]{3})*)|0)?(/.[0-9]{1,2})?$/); // For just a true/false response !!yourNumber.match(/(?=.)^/$?(([1-9][0-9]{0,2}(,[0-9]{3})*)|0)?(/.[0-9]{1,2})?$/);

Ejemplo de uso básico

Demostración con casos de prueba

var tests = [ "$1,530,602.24", "1,530,602.24", "$1,666.24$", ",1,666,88,", "1.6.66,6", ".1555." ]; var regex = /(?=.*/d)^/$?(([1-9]/d{0,2}(,/d{3})*)|0)?(/./d{1,2})?$/; for (i = 0; i < tests.length; i++) { console.log(tests[i] + '' // '' + regex.test(tests[i])); document.write(tests[i] + '' // '' + regex.test(tests[i]) + ''<br/>''); }

Necesito ayuda para la expresión regular de divisas en la función jQuery.

  • Opcionalmente, permite el signo "$" solo una vez al comienzo.
  • Permite la coma como separador de grupos digitales, pero no al principio o al final.
  • Permite solo 2 dígitos redondeados después del punto decimal.
  • Permite solo un punto decimal y no al principio o al final.

Válido:

$1,530,602.24 1,530,602.24

Inválido:

$1,666.24$ ,1,666,88, 1.6.66,6 .1555.

Intenté /^/$?[0-9][0-9,]*[0-9]/.?[0-9]{0,2}$/i ; funciona bien, excepto que coincide con 1,6,999 .


Aquí está la expresión regular que debería lograr esto para usted.

El inicio debe ser numérico o $ signo. Puede haber cualquier cantidad de dígitos con comas, pero debe comenzar y terminar con un dígito. Opcionalmente, puede haber un punto decimal con hasta dos dígitos después de él al final de la línea.

var your_input = "$1,000,000.00"; var valid_dollar_amt_regex = /^/$?[0-9][0-9,]*[0-9]/.?[0-9]{0,2}$/i; if(valid_dollar_amt_regex.test(your_input)) alert("Valid!");

O usa esta función

function validate_money(i) { var valid_dollar_amt_regex = /^/$?[0-9][0-9,]*[0-9]/.?[0-9]{0,2}$/i; return valid_dollar_amt_regex.test(i); }

Véalo funcionar: http://jsfiddle.net/znuJf/