我需要能够对HTML元素的文本进行编码,以及将HTML标记中的双引号更改为单引号。
例如:
<span style="color:#000;">He said "hello"</span>
将成为:
<span style='color:#000;'>He said "hello"</span>
我希望双引号基本消失,因为我将HTML字符串(如上所述)传输到输入的value
属性。
我无法简单地转义HTML中的所有双引号,因为我需要将它放在DOM中。
我现在的方法(下面)只有一半有效,我对它不满意;它效率不高,只有一半有效(由于某种原因,它不会改变标签中的一些双引号)。
var newVal = $popup.find(".jqte_editor").html();
// replace the double quotes inside HTML tags with single quotes.
var regex = new RegExp("<([^\/].*?(?=>))", "g");
var result;
while ((result = regex.exec(newVal)) !== null) {
var match = result[0];
newVal = newVal.replace(match, match.replace(/"/g, "'"));
}
// replace double quotes outside of HTML tags with "
regex = new RegExp(">([^\/].*?(?=<))", "g");
result = null;
while ((result = regex.exec(newVal)) !== null) {
var match = result[0];
newVal = newVal.replace(match, match.replace(/\"/g, """));
}
我希望能够直接从数据库中提取HTML并放入DOM而无需通过Javascript进行解析来解码。
非常感谢任何和所有的帮助,如果我在任何地方都不清楚,请告诉我。
链接到JSFiddle:http://jsfiddle.net/2sv5g9wu/1/