【问题标题】:JS - Stripping tags while preserving line breaks works with DOM object, but not html in a variableJS - 在保留换行符的同时剥离标签适用于 DOM 对象,但不适用于变量中的 html
【发布时间】:2013-09-19 16:54:14
【问题描述】:

我正在尝试在 javascript(或 jQuery)中创建一个函数,该函数将采用一个 variable 填充 html 并输出纯文本版本。该函数需要去除html标签并在标题和段落标签的末尾插入换行符。

多年来,我一直在兜圈子。有很多关于如何获取 DOM 对象的示例,例如document.body.innerHTML 并删除标签。但是,我使用的是一个 变量 填充 html 并且结果不一样。

这是假定的重复解决方案:http://jsfiddle.net/8JSZX/。但是,创建一个 html 变量并使用它,您会得到:http://jsfiddle.net/JjXXY/ - 它不保留换行符。

html 变量类似于:

var html = '<h1>This is a heading</h1><p>This is a paragraph</p><p>This is another paragraph</p>'

如果有更好的解决方案,我愿意接受建议!

【问题讨论】:

  • @chessweb 我已经编辑了问题
  • 啊!这不是重复的!如果您阅读了这个问题,我问的是如何使用变量而不是 DOM 对象。在这种情况下,重复的解决方案不起作用。

标签: javascript jquery html plaintext


【解决方案1】:

试一试:

var html_string = '<h1>Test</h1><p>A paragraph with a <a href="link">link</a></p>';
var regex = /<(\/?)[a-zA-Z0-9][^>]*>/g;
var stripped = html_string.replace(regex, '');
$("#result").html(stripped);

见:http://jsfiddle.net/Y6q2j/5/

【讨论】:

    猜你喜欢
    • 2017-06-14
    • 1970-01-01
    • 2012-05-18
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多