Как разрешить ввод с пробелами и ограничением символов 15 с использованием регулярных выражений

#regex

#регулярное выражение

Вопрос:

Для одного из моих проектов я просто хочу проверить ввод, который имеет следующие критерии:

  • Ввод может содержать пробелы, но не все пробелы
  • Ввод должен содержать по крайней мере один или несколько символов
  • пробел не является обязательным
  • Ввод должен разрешать любой символ клавиатуры

Например :

  1. пробел14 символов
  2. #$space12chars
  3. amp;^11 charsspace

Я не очень старался писать регулярное выражение, так как я новичок в этом.

 ^[x00-x7Es]{0,15}$
 

Но приведенное выше выражение допускает все пробелы, которые ограничены 15 символами — оно не удовлетворяет первым критериям.

Комментарии:

1. Попробуйте ^(?!s $)[x00-x7Es]{1,15}$

2. Кстати, мой комментарий не сработал?

Ответ №1:

Это то, что вы ищете?

^(?!s $)[x00-x7E]{0,14}$

Ответ №2:

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

 ^(?!s $)[x00-x7E]{1,15}$
 

Он соответствует:

Условие «Ввод может содержать пробелы, но не все пробелы» выполняется с отрицательным прогнозом (?!s $) , размещенным сразу после привязки к началу строки (для выполнения проверки только один раз).

«Ввод должен содержать по крайней мере один или несколько символов» легко выполняется с помощью {1,15} ограничивающего квантора: нижняя граница установлена на 1 , поэтому должно быть не менее 1 символа. Верхняя граница установлена на 15 , вы можете настроить ее в соответствии с вашими меняющимися требованиями.

Условие «пробел не является обязательным» выполняется из-за использования одного универсального класса символов, который также соответствует другим типам символов.

Условие «Ввод должен разрешать любой символ клавиатуры» уже выполнено вашим начальным выражением, поскольку [x00-x7E] соответствует диапазону символов ASCII.