Saltar al contenido

RegEx para precios?

La guía paso a paso o código que hallarás en este artículo es la resolución más rápida y válida que encontramos a tus dudas o dilema.

Solución:

¿En qué idioma lo vas a usar?

Debería ser algo como:

^d+(,d1,2)?$

Explicación:

número x delante es: ^d+ dónde ^ significa el comienzo de la string, d significa un dígito y + significa uno o más

usamos grupo () con un signo de interrogación, un ? significa: hacer coincidir lo que está dentro del grupo una o ninguna vez.

dentro del grupo hay ,d1,2la , es la coma que escribiste, d sigue siendo un dígito 1,2 significa coincidir con el dígito anterior una o dos veces.

El final $ coincide con el final de la string.

No quedé satisfecho con las respuestas anteriores. Aquí está mi opinión al respecto:

d1,3(?:[.,]d3)*(?:[.,]d2)

|^^^^^^|^^^^^^^^^^^^^|^^^^^^^^^^^|
| 1-3  | 3 digits    | 2 digits  |
|digits| repeat any  |           |
|      | no. of      |           |
|      | times       |           |

(Obtenga una explicación detallada aquí: https://regex101.com/r/cG6iO8/1)

Cubre todos los casos a continuación

  • 5.00
  • 1,000
  • 1.000.000,99
  • 5,99 (precio europeo)
  • 5.999,99 (precio europeo)
  • 0.11
  • 0.00

Pero también cosas raras como

  • 5.000,000.00

En caso de que desee incluir 5 y 1000 (personalmente, no me gusta hacer coincidir TODOS los números), simplemente agregue un “?” al igual que:

d1,3(?:[.,]d3)*(?:[.,]d2)?

Estoy trabajando en un problema similar. Sin embargo, solo quiero hacer coincidir si un símbolo de moneda o cadena también está incluido en la cadena como EUR, €, USD o $. El símbolo puede ir detrás o delante. No me importa si hay espacio entre el Número y la subcadena de Moneda. Basé la coincidencia de números en la discusión anterior y usé Número de precio: d1,3(?:[.,]d3)*(?:[.,]d2)?

Aquí está el resultado final:

(USD|EUR|€|$)s?(d1,3(?:[.,]d3)*(?:[.,]d2))|(d1,3(?:[.,]d3)*(?:[.,]d2)?)s?(USD|EUR|€|$)

yo suelo (d1,3(?:[.,]d3)*(?:[.,]d2)?)s?(USD|EUR|€|$) como un patrón para hacer coincidir con un símbolo de moneda (aquí con tolerancia para un espacio inicial). Creo que puedes ajustarlo fácilmente para cualquier otra moneda.

Se puede encontrar un Gist con la última versión en https://gist.github.com/wischweh/b6c0ac878913cca8b1ba

Reseñas y valoraciones del tutorial

Eres capaz de asentar nuestra ocupación dejando un comentario o dejando una puntuación te damos la bienvenida.

¡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 *