开发者

Javascript find and replace a set of characters?

I have a string and I need to replace all the ' and etc to their proper value

I am using

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

To do so, but the problem is it se开发者_StackOverflowems to be replacing ' for each character (so for example, ' becomes '''''

Any help?


Use this:

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

['] is a character class. It means any of the characters inside of the braces.

This is why your /[']/ regex replaces every single char of ' by the replacement string.


If you want to use new RegExp instead of a regex literal:

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

This has no benefit, except if you want to generate regexps at runtime.


Take out the brackets, which makes a character class (any characters inside it match):

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

or even better, use a literal:

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

Edit: See this question on how to escape HTML: How to unescape html in javascript?


Rather than using a bunch of regex replaces for this, I would do something like this and let the browser take care of the decoding for you:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜