在字符串中查找并替换<! - ?php&? - >

时间:2017-06-24 21:53:39

标签: javascript jquery html

我有一大串有效的HTML代码将插入到DOM中,该字符串还包含PHP代码。我想将php代码显示为纯文本,Chrome会自动注释掉PHP代码。显然PHP代码包含在<?php ... ?>中,所以我的问题是:

如何使用<?php标记替换打开的<span>,并将?>替换为</span>以关闭打开的<span>标记,以便PHP代码在<span>标签内,因此可以作为纯文本显示?

编辑:我将通过替换span来将PHP代码包装回<?php ?>,因此转义字符会使这更难。

3 个答案:

答案 0 :(得分:1)

你可以逃脱它。

自: https://css-tricks.com/snippets/javascript/htmlentities-for-javascript/

function htmlEntities(str) {
    return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
}

答案 1 :(得分:1)

正如您所说HTML是一个字符串,您可以轻松地使用replace()函数。

var html = // your html
var sanitized = html.replace(/<\?php/g, "<span>").replace(/\?>/g, "</span>");

答案 2 :(得分:0)

使用正则表达式

RegExp101是一个很棒的游乐场。 请记住将左侧菜单中的风味更改为 JavaScript

最简单的方法是使用.replace()功能。

var str = str.replace(/(<\?php)|(<\?)|(<\?=)/g, '<span>').replace(/(\?>)/g, '</span>');

修改:根据Get Off My Lawn的要求,我已添加对<?=<?代码的支持。管道|代表正则表达式中的