2013-07-21 1 views
5

せずに文字列からテキストを抽出し、私はこの文字列を持っている:JS:jQueryの

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) 

を私は心配ですので、大文字の巨大な文字列によるパフォーマンスについては、ネイティブに行きたいと思っています。

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

答えて

3

の間の時間のブラウザは衛生を行うと、このトリックを使用してみましょう:

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プロパティinnerTextまたはtextContentを呼び出すだけで、唯一のテキストを得ることができます。

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

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タグを空の文字列で削除します。

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> 
関連する問題