5

私はこの文字列を持っています:

var string = '<article><img alt="Ice-cream" src=http://placehold.it/300x300g"><div style="float: right; width: 50px;"><p>Lorem Ipsum </p></div></article>';

そして、私はそれからテキストを抽出しようとしています:

var $str = $(string).text();
console.log($str)

しかし、文字数が多く文字数が多いためパフォーマンスが気になるので、ネイティブで行きたいと思っています。

これはどのように可能ですか?

4

3 に答える 3

4

ブラウザにサニテーションを行わせ、次のトリックを使用します。

var str= '<article><img alt="Ice-cream" src=http://placehold.it/300x300g">'+
'<divstyle="float: right; width: 50px;"><p>Lorem Ipsum </p></div></article>';

var dummyNode = document.createElement('div'),
    resultText = '';

dummyNode.innerHTML = str;
resultText = dummyNode.innerText || dummyNode.textContent;

これにより、ダミーの DOM 要素が作成され、その HTML コンテンツが入力文字列に設定されます。これで、DOM プロパティまたは
を呼び出すだけで、テキストのみを取得できます。innerTexttextContent

また、ブラウザはこれらの値を取得するためのより優れたアルゴリズムを既に作成しているため、これはより安全で堅牢です。

于 2013-09-13T07:23:28.593 に答える
3

任意の文字を検索するには、グローバル検索を行う必要があります。~の間の<時間>

<script type="text/javascript">

var str='<article><img alt="Ice-cream" src=http://placehold.it/300x300g"><div style="float: right; width: 50px;"><p>Lorem Ipsum </p></div></article>';
var patt=/\<.*?\>/g;

var result = str.replace(patt, "");
console.log(result);

</script>
于 2013-07-27T08:03:54.430 に答える
0

regexタグを含む文字列からテキストを取得するために使用できHTMLます。

<script type="text/javascript">

    var regex = "/<(.|\n)*?>/";
    var string = '<article><img alt="Ice-cream" src=http://placehold.it/300x300g"><div style="float: right; width: 50px;"><p>Lorem Ipsum </p></div></article>';
    var result = string .replace(regex, "");
    alert(result); // result should be "Lorem Ipsum "

</script>

このようにして、すべての HTML タグを空の文字列で取り除きます。

于 2013-07-21T20:46:30.197 に答える