Есть две вещи, которые вы хотите проверить и разрешить, пропуски и <br />
, так что предполагает чередование позволяя ноль или более повторений, закрепленную на обоих концах:
if(/^(?:\s|<br \/>)*$/.test(content)){ }
, что означает:
^
- начало ввода
(?:...)
- не-захвата группы
\s
- любой одиночный символ пробела
|
- чередование позволяет вещи по обе стороны от него
<br \/>
- соответствуют литеральной строке <br />
(обратите внимание, что нам нужно было избежать /
)
*
- ноль или более вещи, которые пошли раньше, без захвата группы
$
- конец ввода
Если есть шанс, что пространство или солидуса внутри тега не может быть там, или пространство может быть повторен, а затем:
if(/^(?:\s|<br *\/?>)*$/.test(content)){ }
Добавление *
после того, как пространство позволяет там быть равен нулю, или несколько, пробелов; добавив ?
после солидуса (/
), он может быть там (один раз) или нет.
Примечание: Вышеприведенное не допускает никаких признаков в теге br
, например. <br class="foo" />
, <br data-foo="bar"/>
и т. Д. Он также соответствует пустым строкам.
Чтобы для атрибутов, но по-прежнему соответствовать пустым строкам:
if(/^(?:\s|<br[^>]*>)*$/.test(content)){ }
// Change ----^^^^
Чтобы разрешить для атрибутов и DISALLOW пустых строк (должен иметь по крайней мере один пробел или один br
тега):
if(/^(?:\s|<br[^>]*>)+$/.test(content)){ }
// Change ------- ---^
я бы подумал, что это тривиально: '/^(\ S |
] *>) + $/i' –