確認して許可する必要があるのは、空白と の 2 つです<br />
。これは、両端に固定された 0 回以上の繰り返しを許可する代替を示唆しています。
if(/^(?:\s|<br \/>)*$/.test(content)){ }
つまり:
^
- 入力の開始
(?:...)
- 非捕獲グループ
\s
- 任意の単一の空白文字
|
- 交互、その両側のものを許可します
<br \/>
- リテラル文字列に一致します<br />
(エスケープする必要があることに注意してください/
)
*
- 0 個以上の前に行ったもの、非キャプチャ グループ
$
- 入力の終わり
タグ内のスペースまたは塗りつぶしが存在しない可能性がある場合、またはスペースが繰り返される可能性がある場合は、次のようになります。
if(/^(?:\s|<br *\/?>)*$/.test(content)){ }
スペースの後に を追加する*
と、ゼロまたは複数のスペースを使用できます。?
ソリダス ( )の後に を追加する/
と、そこに (1 回) 存在するかどうかが決まります。
注:上記では、 、 などのbr
タグの属性を使用できません。空の文字列にも一致します。<br class="foo" />
<br data-foo="bar"/>
属性を許可し、引き続き空の文字列に一致させるには:
if(/^(?:\s|<br[^>]*>)*$/.test(content)){ }
// Change ----^^^^
属性を許可し、空の文字列を禁止するには (少なくとも 1 つの空白または 1 つのbr
タグが必要です):
if(/^(?:\s|<br[^>]*>)+$/.test(content)){ }
// Change ------- ---^