【问题标题】:How to replace "&lt;b&gt;" with "<b>" in the whole document and without jquery如何在整个文档中用“<b>”替换“<b>”而不使用jquery
【发布时间】:2012-09-16 20:17:11
【问题描述】:

下面的函数只替换它找到的第一个“&amp;lt;br /&amp;gt;”,而不是后面的。有谁知道如何解决这个问题? 我希望该函数替换整个文档中的所有字符串。

<script language="javascript" type="text/javascript">
    window.onload = function umtauschen()
    {
    document.body.innerHTML = document.body.innerHTML.replace('&lt;br /&gt;', '<br />');
    document.body.innerHTML = document.body.innerHTML.replace('&lt;b&gt;', '<b>');
    document.body.innerHTML = document.body.innerHTML.replace('&lt;/b&gt;', '</b>');
    }
</script>

谢谢

【问题讨论】:

  • 是只是您要替换的br,还是其他标签? (我支持为什么?)
  • 为什么你一开始就有转义标签?有些事情你没有告诉我们。

标签: javascript replace


【解决方案1】:

使用正则表达式和g(全局)标志:

document.body.innerHTML = document.body.innerHTML
    .replace(/&lt;br \/&gt;/g, '<br />')
    .replace(/&lt;b&gt/g, '<b>')
    .replace(/&lt;\/b&gt;/g, '</b>');

另一种选择是使用.split(find).join(replace) 成语:

document.body.innerHTML = document.body.innerHTML
    .split('&lt;br /&gt;').join('<br />')
    .split('&lt;b&gt;').join('<b>')
    .split('&lt;/b&gt;').join('</b>');

【讨论】:

    【解决方案2】:

    以下代码应该可以解决您的问题:

    document.body.innerHTML = document.body.innerHTML.replace(/&lt;/g, '<').
                                                    replace(/&gt;/g, '>') ;
    

    【讨论】:

      【解决方案3】:

      如果文档是动态的,如由脚本、PHP 或其他方式生成的,最好在数据库中替换标签或在打印数据时替换。如果是静态 HTML 页面,最好在原始文件中编辑代码。

      在页面加载后动态替换整个正文将执行缓慢。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-26
        • 2021-11-18
        • 1970-01-01
        • 2023-03-04
        • 2018-08-11
        • 2018-09-19
        相关资源
        最近更新 更多