Estoy tratando de crear un patrón de expresiones regulares para la validación de nombres. El nombre de la aplicación debe tener lo siguiente:
Esto es lo que obtuve [^\[az\]+(\[a-z0-9\-\])*\[a-z0-9\]$][1] no funciona perfectamente. La validación falla si ingresa un solo carácter en el campo. ¿Cómo puedo mejorar este patrón? Gracias de antemano.
Puedes usar el siguiente patrón:
^[az](?:[a-z0-9-]*[a-z0-9])?$Explicación:
^[az] comienza con alfa minúscula(?: desactivar el grupo de captura[a-z0-9-]* cero o más alfanuméricos O guión[a-z0-9] final obligatorio solo en alfanumérico, si la longitud es > 1)? hacer este grupo opcional$ fin de entradaEstá utilizando una clase de caracteres negados [^ que coincide con 1 carácter, sin ser ninguno de los caracteres especificados en la clase de caracteres.
A eso le sigue otra clase de carácter [1] que solo puede coincidir con 1 , por lo que el patrón coincide con 2 caracteres, como por ejemplo #1
En sus ejemplos, parece que solo tiene un guión, por lo que si no puede haber guiones consecutivos --
^[az][a-z0-9]*(?:-[a-z0-9]+)*$Explicación
^ Comienzo de cadena[az] Coincide con un solo carácter az[a-z0-9]* Opcionalmente repetir cualquiera de az o 0-9(?:-[a-z0-9]+)* Opcionalmente, repite la coincidencia - seguida de al menos 1 o az o 0-9 (por lo que no puede haber un guión al final)$ Fin de la cadena