2

Javascript と正規表現を使用すると、以下が与えられます。

stringHTML = "bla bla bla <img src='img1.png' /> bla bla bla 
<img src='img2.png' /> bla bla bla <img src='img3.png' />";

どのように削除しますか

<img src='img1.png' />

stringHTML の最初の img タグ

4

2 に答える 2

4

次のようなものが機能します。

var output = stringHTML.replace(/<img src='img1.png' \/>/, '');

これにより、指定した正確な部分文字列 (リテラル<img src='img1.png' />) のみが検索され、空の文字列に置き換えられます。JavaScript はスラッシュを使用して正規表現リテラルを区切るため、パターンではスラッシュをエスケープする必要があることに注意してください。

パスやその他の属性に関係なく、入力文字列から最初のタグを削除するには<img>、これを使用できます。

var output = stringHTML.replace(/<img.*?\/>/, ''); 

これは、リテラルの<img後にゼロ個以上の任意の文字が貪欲になく、その後にリテラルが続くことを検出します/>。グローバル スイッチ ( g) がないと、最初に出現したもののみが置き換えられることに注意してください。

于 2013-09-20T21:51:22.187 に答える
3

JavaScript には、すばらしい DOM 解析機能が組み込まれています。

x = document.createElement("x");
x.innerHTML = stringHTML;

x.removeChild(x.querySelector("img"));

querySelector("img")最初の画像を選択することに注意してください。特に画像を選択する必要がある場合src=img1.pngは、属性セレクターを使用できます。クエリ セレクターが使用できない場合は、 で取得した img タグをループする必要がありますgetElementsByTagName

http://jsfiddle.net/ZsqK5/

于 2013-09-20T21:54:10.450 に答える