[英]Substring text with javascript including html tags
我想对一个字符串进行子串化,例如跟随。 而且我有弦的起始位置和长度。 我已经用Javascript中的HTML标签检查了此子字符串文本 。 但是在这个子串是从0开始执行的,但是我有一个随机的开始位置。 关于如何完成的任何想法
var str = 'Lorem ipsum <p>dolor <strong>sit</strong> amet</p>, consectetur adipiscing elit.'
这是演示
function html_substr( str, start ,count ) {
var div = document.createElement('div');
div.innerHTML = str;
walk( div, track );
function track( el ) {
if( count > 0 ) {
var len = el.data.length;
if(start<=len){
el.data = el.substringData(start,len);
start=0;
} else{
start-=len;
el.data = '';
}
len = el.data.length;
count -= len;
if( count <= 0 ) {
el.data = el.substringData( 0, el.data.length + count );
}
} else {
el.data = '';
}
}
function walk( el, fn ) {
var node = el.firstChild;
do {
if( node.nodeType === 3 ) {
fn(node);
} else if( node.nodeType === 1 && node.childNodes && node.childNodes[0] ) {
walk( node, fn );
}
} while( node = node.nextSibling );
}
return div.innerHTML;
}
称其为
html_substr( str,13, 2 );
这是一种执行此类操作的本机DOM API方法。 该浏览器已经具有强大的内置HTML解析功能。 无需重新发明轮子
var el = document.createElement("div");
el.innerHTML = 'Lorem ipsum <p>dolor <strong>sit</strong> amet</p>, consectetur adipiscing elit.';
el.getElementsByTagName("p").textContent;
结果只是一个非HTML字符串,您可以轻松地使用.substring
操作。
我们将HTML转储到HTML元素中。
然后,我们使用DOM API来表示以下内容:
“在HTML中,我们刚刚给了您,找到所有p
标签,使用第一个(即[0]),然后将其textContent给我们。”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.