Javascript помогне за регекс - javascript, regex

Имам нужда от помощ с javascript regex, защото не мога да го разбера. Регетото се нуждае от следните критерии:

  1. Минимум 3 символа
  2. Максимум 40 знака
  3. Съдържа само букви, числа празно (без нов ред и други знаци като?, _, ...)
  4. Може да съдържа само 1 *, но след 3 знака

Ето някои тестови данни:

  • Аз съм някои testdata -> ОК
  • Аз съм * някои testdata -> ОК
  • Аз съм някои testdata -> NOK (* след 3 символа)
  • Аз съм * някои * testdata -> NOK (0 или 1 пъти а *)
  • Аз съм някои testdata и аз съм много по-дълъг от максималния -> NOK (за дълго)
  • AB -> NOK (не достатъчно дълго)

Тъй като не съм професионалист в създаването на реге, това е, което събрах досега (но не мога да ги събера):

  • / [^ Sn] / -> Само празно пространство и няма нов ред
  • / [w] / -> Word характер
  • {3,40} -> Между 3 и 40 знака

Отговори:

2 за отговор № 1

Този регекс трябва да работи за вас при всички условия:

^(?!.{1,2}?*)(?!(?:.*?*){2})[w .?*,]{3,40}$

Онлайн демонстрация: http://regex101.com/r/eJ3aF7


2 за отговор № 2
/^(?=.{,40}$)[A-Za-z0-9s]{3,}*?[A-Za-z0-9s]*$/