我有这个字符串:
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)
但是因为我担心由于大量文字的大量字符串而导致的性能,所以我想要本地化。
这怎么可能?
答案 0 :(得分: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属性innerText
或textContent
即可获得唯一的文本。
这也更安全,更健壮,因为浏览器已经编写了更好的算法来获取这些值。
答案 1 :(得分: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>
答案 2 :(得分: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标记。