Saltar al contenido

Expresión regular para hacer coincidir el número con separador decimal y separador de miles opcional

Solución:

La razón por la que la segunda alternativa no coincide es porque solo permite una f después del punto decimal. Eso necesita ser d+.

Entonces necesitas envolver todo entre ^ y $ en un grupo, por lo que todas las alternativas coinciden con la cadena completa.

Tenías muchos paréntesis redundantes. Y d* en la última alternativa debe ser d+, de lo contrario, permitirá un número que esté completamente vacío o solo sea un signo.

^[+-]?([0-9]{1,3}(,[0-9]{3})*(.[0-9]+)?|d*.d+|d+)$
  • ^ -> inicio de cadena
  • [+-]? -> coincide con opcional + o - carbonizarse
  • ([0-9]{1,3}(,[0-9]{3})*(.[0-9]+)?|d*.d+|d+) -> todo el grupo tiene que coincidir [0-9]{1,3}(,[0-9]{3})*(.[0-9]+) o d*.d+ o d+

    • [0-9]{1,3}(,[0-9]{3})*(.[0-9]+) -> coincide con números con miles de separadores y tal vez separador decimal
    • d*.d+ -> coincide con números con separador decimal, y tal vez dígitos antes del decimal
    • d+ -> coincide con números sin separador decimal
  • $ -> fin de cadena

MANIFESTACIÓN

Puede utilizar esta expresión regular para la validación:

^[+-]?(?:d+|d{1,3}(?:,d{3})*)(?:.d*)?$

Demostración de RegEx

Coincide con los siguientes casos:

  • Un número entero
  • Un número de coma flotante
  • Un número con separadores como , en el 3er lugar
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *