確認して許可する必要があるのは、空白と の 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 ------- ---^