我有一个字符串,我需要将所有'
等替换为正确的值
我正在使用
var replace = str.replace(new RegExp("[']", "g"), "'");
要执行此操作,但问题是它似乎替换了每个字符的'
(例如,'
变为'''''
任何帮助?
答案 0 :(得分:9)
使用此:
var str = str.replace(/'/g, "'");
[']
是一个字符类。它意味着大括号内的任何字符。
这就是为什么你的/[']/
正则表达式用替换字符串替换'
的每个字符。
如果您想使用new RegExp
而不是正则表达式文字:
var str = str.replace(new RegExp(''', 'g'), "'");
除非您想在运行时生成正则表达式,否则这没有任何好处。
答案 1 :(得分:6)
取出括号,它创建一个字符类(其中的任何字符都匹配):
var replace = str.replace(new RegExp("'", "g"), "'");
甚至更好,使用文字:
var replace = str.replace(/'/g, "'");
编辑:查看有关如何转义HTML的问题:How to unescape html in javascript?
答案 2 :(得分:2)
我没有使用一堆正则表达式替换它,我会做这样的事情,让浏览器为你处理解码:
function HtmlDecode(s) {
var el = document.createElement("div");
el.innerHTML = s;
return el.innerText || el.textContent;
}