/ / Javascript ajuda regex - javascript, regex

JavaScript ajuda regex - javascript, regex

Eu preciso de alguma ajuda com um regex javascript porque eu não consigo descobrir. O regex precisa dos seguintes critérios:

  1. Mínimo 3 caracteres
  2. Máximo de 40 caracteres
  3. Contém apenas letras, números, um espaço em branco (sem nova linha e outros caracteres como?, _, ...)
  4. 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 № 1

Este 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]*$/