Я использую ^$|^[^\s]+(\s+[^\s]+)*$ для достижения:

  1. без пробелов в начале и в конце разрешить белый
  2. пространство посередине
  3. пустой строкой

Но как я могу поставить квантификаторы, чтобы ограничить количество символов от 6 до 20?

Следующее должно пройти

""              <-- (empty string)
"中文"          <-- ( any character)
"A B"          <-- (allow space in middle)
"hi! Hello There"

Следующее должно потерпеть неудачу

"A"            <-- (less than 2 number of characters)
" AB"          <-- (space at the start)
"AB "          <-- (space at the end)
" AB "
"test test test test test test"  <--- (more than 20 characters included spaces)

Благодарность!

5
Chris So 9 Май 2014 в 12:00

2 ответа

Лучший ответ

Вы можете использовать это регулярное выражение:

^(?:\S.{4,18}\S)?$

Рабочая демонстрация

4
anubhava 9 Май 2014 в 08:04

Как насчет такого регулярного выражения?

^$|^\S.{4,18}\S$

Regular expression visualization

Debuggex Demo

2
Ulugbek Umirov 9 Май 2014 в 08:03