Eu preciso de alguma ajuda com um regex javascript porque eu não consigo descobrir. O regex precisa dos seguintes critérios:
- Mínimo 3 caracteres
- Máximo de 40 caracteres
- Contém apenas letras, números, um espaço em branco (sem nova linha e outros caracteres como?, _, ...)
- PODE conter SOMENTE 1 *, mas depois de 3 caracteres
Aqui está um teste de dados:
- Eu sou algum testdata -> OK
- Eu estou * alguns testdata -> OK
- Eu sou algum testdata -> NOK (* após 3 caracteres)
- Eu sou * some * testdata -> NOK (0 ou 1 vezes a *)
- Eu sou alguns testdata e eu sou muito mais do que o máximo -> NOK (para longa)
- AB -> NOK (não o suficiente)
Porque eu não sou um profissional em criar um regex, isso é o que eu colecionei até agora (mas eu não posso colocá-los juntos):
- / [^ Sn] / -> Apenas espaço em branco e sem nova linha
- / [w] / -> caractere do Word
- {3,40} -> Entre 3 e 40 caracteres
Respostas:
2 para resposta № 1Este regex deve funcionar para você em todas as condições:
^(?!.{1,2}?*)(?!(?:.*?*){2})[w .?*,]{3,40}$
Demonstração Online: http://regex101.com/r/eJ3aF7
2 para resposta № 2
/^(?=.{,40}$)[A-Za-z0-9s]{3,}*?[A-Za-z0-9s]*$/