1

削除したいHTMLエンティティの束で満たされたDIV要素があります。

<div class="text">
<p>&lt;p&gt;&#8203;&lt;span style="line-height:25px;"&gt;&#8203;&lt;/span&gt;&lt;span style="line-height:25px;"&gt;&#8203;Hej hop!&lt;/span&gt;&nbsp;&lt;span style="line-height:25px;"&gt;&#8203;&lt;/span&gt;&lt;span</p>
</div>

jQueryを使用してこのコードを作成しましたが、機能していません。

$('.text').each(function () {
    $(this).replace(/<\/?[a-z][a-z0-9]*[^<>]*>/ig, "");
});

テキストを「HejHop!」というフレーズに置き換えようとしています。

正規表現は間違っていません。

これが私が他のいくつかのページでそれをした方法です:

    text = text.replace(/<\/?[a-z][a-z0-9]*[^<>]*>/ig, "");

しかし、これはテキストを返すパラメーターを持つjavascript関数にありました。しかし、この特定のページでは、jqueryを使用し、反復してチェックする必要があります...

解決した質問:

$('text').each(function () {
    $(this).html(function (i, v) {
        return $('<div>').html(v).text();
    });
});
4

3 に答える 3

7

必要なのは:

$('.text').empty();

編集—要素のコンテンツからマークアップを削除したい場合、最も簡単なことは、マークBがコメントで提案したことです。

$('.text').each(function() {
  $(this).text($(this).text());
});
于 2013-03-11T16:13:20.973 に答える
2

.html()を使用して、このようにそれらを取り除くことができます

$('div.text').html(function(i,v){
    return $('<div>').html(v).text();
    // create new div - append HTML and get the text from the div
});

http://jsfiddle.net/UA9P9/

まだいくつかの文字が残っているので、おそらく正規表現でそれらを正規表現する必要があります

$('div.text').html(function(i,v){
     return $.trim($('<div>').html(v).text().replace(/<\/?[a-z][a-z0-9]*[^<>]*>/ig, ""));
});

http://jsfiddle.net/VfxaT/

于 2013-03-11T16:30:07.977 に答える
0

これらはASCIIコードであるため、その正規表現は次のとおりです。/xxx[\x00-\x7F]+xxx/

于 2013-03-11T16:17:12.600 に答える