Javascript是否查找并替换一组字符?

Javascript是否查找并替换一组字符?,javascript,Javascript,我有一个字符串,需要替换所有的'等设置为其正确值 我正在使用 var replace=str.replace(新的RegExp(“[';]”,“,“g”),“”) 这样做,但问题是它似乎在为每个字符替换,(例如,';变成, 有什么帮助吗?使用以下方法: var str = str.replace(/'/g, "'"); [';]是一个字符类。它表示大括号内的任何字符 这就是为什么您的/[';]/正则表达式用替换字符串替换';的每个字符 如果

我有一个字符串,需要替换所有的
'等设置为其正确值

我正在使用

var replace=str.replace(新的RegExp(“[';]”,“,“g”),“”)

这样做,但问题是它似乎在为每个字符替换
(例如,
';
变成

有什么帮助吗?

使用以下方法:

var str = str.replace(/'/g, "'");
[';]
是一个字符类。它表示大括号内的任何字符

这就是为什么您的
/[';]/
正则表达式用替换字符串替换
';
的每个字符


如果要使用
new RegExp
而不是regex文本:

var str = str.replace(new RegExp(''', 'g'), "'");

这没有任何好处,除非您想在运行时生成regexp。

去掉括号,这会使字符类(其中的任何字符都匹配):

或者更好地使用文字:

var replace = str.replace(/'/g, "'");

编辑:查看关于如何转义HTML的问题:

与其为此使用一堆正则表达式替换,不如这样做,让浏览器为您处理解码:

    function HtmlDecode(s) {
        var el = document.createElement("div");
        el.innerHTML = s;
        return el.innerText || el.textContent;
    }

错误出现在使用
[]
时。如果您删除它们,它应该会起作用。或者使用arnaud建议的更紧凑的JS表示法。这两种表示法似乎都会生成错误“Unterminated regular expression literal”这两种表示法似乎都会生成错误“Unterminated regular expression literal”@Steven您是如何使用它的?+1好主意……尽管您不需要调用
delete el;
(它没有效果,甚至在严格模式下会抛出错误)。您只需执行
返回el.innerText | el.textContent;
    function HtmlDecode(s) {
        var el = document.createElement("div");
        el.innerHTML = s;
        return el.innerText || el.textContent;
    }