Soy nuevo en expresiones regulares y estoy probando la validación en javascript / jquery usando expresiones regulares, agradezco cualquier ayuda.
La entrada es:
- cadena alfanumérica
- con un mínimo de 3 guiones bajos
- Los guiones bajos no pueden ser consecutivos
- Los guiones bajos no pueden separarse simplemente por cadenas vacías
- La cadena no puede comenzar o terminar con un guión bajo
Casos de prueba válidos:
Abc_def_gh_123
Abc_def_1h_103_BA
Abc_def_1h_103_BA
Casos de prueba inválidos
___
_ _ _
Abc_d
Abc_def_ghi_de21_
Abc_def_fg
Abc_def_fg_
_Abc_def_fg
Había intentado regex en javascript
/^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9]+$/
Pero falla, por ejemplo. si la cadena tiene más de 3 guiones bajos
3 respuestas
Esta expresión regular debería hacer el trabajo:
/^([a-zA-Z0-9]+_){3,}[a-zA-Z0-9]+$/
/([a-zA-Z0-9]+_[a-zA-Z0-9]+){3,}$/mg
http://regex101.com/r/yQ2xS9/2
Descompostura:
[a-zA-Z0-9]+
Comienza con cualquier número de letras minúsculas y mayúsculas, o números.
_[a-zA-Z0-9]+
Contiene un guión bajo seguido de otra secuencia de letras minúsculas / mayúsculas y números.
{3,}$
Mínimo de tres veces (tres lotes de guiones bajos)
Feliz codificación :)
(?=^[a-zA-Z0-9]+?_[a-zA-Z0-9]+?_[a-zA-Z0-9]+?_[a-zA-Z0-9_]*$)(?!.*?_$)(?!.*?_{2,}.*)^.*$
Prueba esto. Esto funciona.
Ver demo.
http://regex101.com/r/pP3pN1/5
Preguntas relacionadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.