1. ホーム
  2. javascript

[解決済み] 文字列がhtmlであるかどうかをチェックする

2022-07-16 08:03:54

質問

ある文字列があり、それがhtmlであるかどうかをチェックしたいのです。私は同じことのために正規表現を使用していますが、適切な結果を得ることはできません。

私は私の正規表現を検証し、それは正常に動作します。 ここで .

var htmlRegex = new RegExp("<([A-Za-z][A-Za-z0-9]*)\b[^>]*>(.*?)</\1>");
return htmlRegex.test(testString);

以下はフィドルですが、この中で正規表現が実行されていません。 http://jsfiddle.net/wFWtc/

私のマシンでは、コードは正常に実行されますが、私は結果としてtrueの代わりにfalseを得ます。 ここで何が足りないのでしょうか?

どのように解決するのですか?

文字列がHTMLであるかどうかをチェックするために使用する、より良い正規表現は次のとおりです。

/^/

例えば

/^/.test('') // true
/^/.test('foo bar baz') //true
/^/.test('<p>fizz buzz</p>') //true

実際、あまりに優れているので、返り値として true を返します。 それぞれ という文字列が渡されます。 というのは、すべての文字列はHTML . 真面目な話、たとえ書式が悪くても、無効でも、それはHTMLなのです。

もしあなたが探しているものが、単にどんなテキストコンテンツでもなく、HTML要素の存在であるなら、次のようなものを使うことができるでしょう。

/<\/?[a-z][\s\S]*>/i.test()

これはHTMLの解析には何の役にも立ちませんが、この文字列がHTML要素を含んでいるというフラグを立てることは間違いないでしょう。