пряное регулярное выражение - PullRequest
0 голосов
/ 29 апреля 2018

Я работал над проблемой регулярных выражений для angularJs ng-pattern, которая требует:

  1. Не может быть заготовок
  2. Минимум 1 символ и максимум 32 символа
  3. ТОЛЬКО пробелы не допускаются
  4. Допустимые специальные символы (! @ # $% & * - + = []:; ',.?)
  5. В ответе не учитывается регистр
  6. Комбинация & # не допускается
  7. Пробелы в начале и конце ответа должны быть обрезаны.

Это мое решение, которое охватывает все требования, кроме 6:

([^a-zA-Z0-9!@#$%& *+=[\]:;',.?-])|(^\s*$)

У вас, ребята, есть идеи?

1 Ответ

0 голосов
/ 30 апреля 2018

Вы можете использовать

/^(?!\s*$)(?!.*&#)[a-zA-Z0-9!@#$%&*+=[\]:;',.?\s-]{1,32}$/

См. Демоверсию regex .

Детали

  • ^ - начало строки
  • (?!\s*$) - без пробелов 0+ от начала до конца строки разрешено
  • (?!.*&#) - не разрешено &# после любых 0+ символов
  • [a-zA-Z0-9!@#$%&*+=[\]:;',.?\s-]{1,32} - от 1 до 32 разрешенных символов: цифры ASCII, буквы, пробелы и некоторые знаки препинания / символы
  • $ - конец строки.
...