Javascript查找并替换一组字符?

时间:2011-09-11 19:41:55

标签: javascript

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

我正在使用

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

要执行此操作,但问题是它似乎替换了每个字符的'(例如,'变为'''''

任何帮助?

3 个答案:

答案 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;
    }