首页 > 如何用JS去掉text中<!-- ... -->注释部分?

如何用JS去掉text中<!-- ... -->注释部分?

抓取到正文内容有很多标签,本来想用document.write()来输出内容并保留格式的,但每一篇文章都有这个注释

<!-- publish_helper name='原始正文' p_id='1' t_id='1' d_id='31737360' f_id='3' -->

导致无法使用document.write()方法。
请问有什么办法能去掉注释呢?我希望页面上显示的是原本的格式。

以下是数据库中其中一篇文章

<div class="img_wrapper"> <img src="http://i2.sinaimg.cn/dy/c/2015-04-20/U11414P1T1D31737514F21DT20150420095218.jpg" alt="&#x5730;&#x9707;&#x4E2D;&#x5FC3;" title="&#x5730;&#x9707;&#x4E2D;&#x5FC3;"> <span class="img_descr">地震中心</span> </div> <!-- publish_helper name='原始正文' p_id='1' t_id='1' d_id='31737514' f_id='3' --> <p>  #地震快讯#中国地震台网自动测定:04月20日09时42分在中国台湾地区附近(北纬24.1度,东经122.4度)发生6.1级左右地震,最终结果以正式速报为准。</p> <p align="right">(原标题:地震快讯)</p> <!-- publish_helper_end -->

谢谢!


原来题主自己领悟错了问题的 key ... 这个问题正如 @Humphry 汉堡大大说的是引号的转义问题,内容中的引号和本身变量赋值成字符串的引号混搭导致 JS 解析出问题了,解决的方法是你把内容存入数据库的时候要做转义,读取出来也要做好转义才行啊。


嘛,其实正则应该是 OK 的解决方式,大概这样就可以解决了:

var text = "<div class=\"img_wrapper\"> <img src=\"http://i2.sinaimg.cn/dy/c/2015-04-20/U11414P1T1D31737514F21DT20150420095218.jpg\" alt=\"&#x5730;&#x9707;&#x4E2D;&#x5FC3;\" title=\"&#x5730;&#x9707;&#x4E2D;&#x5FC3;\"> <span class=\"img_descr\">地震中心</span> </div> <!-- publish_helper name='原始正文' p_id='1' t_id='1' d_id='31737514' f_id='3' --> <p>  #地震快讯#中国地震台网自动测定:04月20日09时42分在中国台湾地区附近(北纬24.1度,东经122.4度)发生6.1级左右地震,最终结果以正式速报为准。</p> <p align=\"right\">(原标题:地震快讯)</p> <!-- publish_helper_end -->";

text = text.replace(/\<!--.+?--\>/g, '')

不过我的人生格言就是:没有蛀牙!不对…是不走寻常路!(雾... 所以一如往常我又来放坑爹答案了...

function removeComment( html ) {
    var parent = document.createElement("div");
    parent.innerHTML = html;
    [].forEach.call(parent.childNodes, function(child) {
        if( child.nodeType === 8 ) return parent.removeChild( child );
        if( child.nodeType === 1 ) child.innerHTML = removeComment( child.innerHTML );
    });
    return parent.innerHTML;
}

removeComment(text);
【热门文章】
【热门文章】