Preciso criar um regext JS que permita apenas letras minúsculas e sublinhado (não no primeiro ou no último).
por exemplo . abc_xyz ou abcc ou abc____xyc___sss
Estou tentando algo como
/^[a-z]+$/
mas não entendo como gerenciar sublinhado
Respostas:
3 para resposta № 1Você pode usar
/^[a-z]+(?:_+[a-z]+)*$/
Veja o demo regex. Se pode haver apenas 1 _
entre letras, substitua _+
com _
(remover +
depois de _
).
Detalhes do padrão:
^
- início da string[a-z]+
- 1+ letras ASCII minúsculas(?:_+[a-z]+)*
- 0+ sequências de:_+
- 1+_
chars[a-z]+
- 1+ letras ASCII minúsculas
$
- fim da string.
0 para resposta № 2
/^[a-z]+_*[a-z]+$/.test("abc_xyz")
true
/^[a-z]+_*[a-z]+$/.test("_abc_xyz")
false
/^[a-z]+_*[a-z]+$/.test("abc_xyz_")
false
/^[a-z]+_*[a-z]+$/.test("abc____xyz")
true
/^[a-z]+_*[a-z]+$/.test("abcxyz")
true
Este padrão não permite um sublinhado no início ou no final.