0

私はこのような文字列を持っています

                       <br />                     <br />                <br />

または時々

            <br />          <br />

また

            <br />

Javascriptで文字列に空白とbrのみが含まれているかどうかを確認するにはどうすればよいですか? 例: if(/\s*/.test(content)){ }

4

3 に答える 3

2

確認して許可する必要があるのは、空白と の 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 ------- ---^
于 2013-09-25T09:20:44.983 に答える
2

たとえば、次の文字列を見てみましょう。

var input = "    <br />   ";

まず第一に、入力からすべての空白を削除したいと思います。そうすれば、これらの正規表現チェックを行うことを心配する必要がなくなります。

var testData = input.replace(/\s/g, '');
//in this example, testData will now be "<br/>"

正規表現を実行して、以下の存在<br/>のみを確認できます。

var regex = /^(?:<br\/>)*$/;
var isValid = regex.test(testData);

これが実際の例です

于 2013-09-25T09:23:09.443 に答える
-1
"^\s*<br />$"

任意の量の空白 (エンターとタブを含む!) を含み、"
"で終わる行を表示します。

于 2013-09-25T09:19:04.730 に答える