Expresiones regulares·un número de versión semántica

un número de versión semántica

Coincide con un número de versión semántica. Está anclado en ambos extremos, así que debe coincidir la cadena entera. No tiene grupos de captura.

Patrón
/^\d+\.\d+\.\d+(?:-[0-9a-z.-]+)?(?:\+[0-9a-z.-]+)?$/i
Alcance
la cadena entera
Grupos de captura
0
Banderas
i · ignorar mayúsculas
Lo que captura en el primer ejemplo
1.0.0

Pruébalo

Escribe cualquier texto y se marcará lo que captura la expresión. Todo ocurre en tu navegador y no se envía a ninguna parte.

1.0.0

1 coincidencia

Ejemplos que coinciden

  • 1.0.0
  • 2.1.3-beta.1
  • 1.0.0+build5

Ejemplos que no coinciden

  • 1.0
  • v1.0.0

Otras expresiones del grupo

Cómo leerlo

  • Con ^ y $ alrededor, debe coincidir la cadena entera; sin ellos, la coincidencia puede estar en cualquier parte. Ancla siempre lo que uses para validar.
  • Los paréntesis ( ) capturan lo que envuelven. Si solo necesitas agrupar, escribe (?: ) para que no se desplace la numeración.
  • Cada expresión de aquí se comprueba con sus ejemplos. Aun así, "parece un correo" y "es un buzón real" son cosas distintas.
  • Las repeticiones abiertas anidadas como (a+)+ pueden dispararse con ciertas entradas. Busca esa forma antes de pegar una expresión ajena.

Preguntas frecuentes

Q. ¿Cuál es la regex para un número de versión semántica?

^\d+\.\d+\.\d+(?:-[0-9a-z.-]+)?(?:\+[0-9a-z.-]+)?$, con la bandera i.

Q. ¿Qué cadenas coinciden?

Un texto como 1.0.0 coincide; uno como 1.0 no.

Q. ¿Debe coincidir la cadena entera?

Sí. Va entre ^ y $, así que solo pasa una coincidencia completa.

Q. ¿Cómo uso lo capturado?

No hay grupos de captura, así que solo vuelve la coincidencia completa (match[0]). Envuelve entre paréntesis la parte que necesites.