开发者

Javascript find and replace a set of characters?

开发者 https://www.devze.com 2023-04-04 07:32 出处:网络
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\"), \"\'\");

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

精彩评论

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