用Javascript替换多个字符串

时间:2015-09-28 00:40:11

标签: javascript regex replace

我正在尝试转换此字符串

.jpg,.gif,.png

进入此(逗号后不是点和空格)

jpg, gif, png

我认为JS中的数组PHP's str_replace之类的东西会起作用,所以我找到了this post,特别是this answer。我尝试了但是没有按预期工作。我得到一个空白的字符串......我做错了什么?

JS

String.prototype.replaceArray = function(find, replace)
{
    var replaceString = this;
    var regex;

    for (var i = 0; i < find.length; i++)
    {
        regex = new RegExp(find[i], "g");
        replaceString = replaceString.replace(regex, replace[i]);
    }

    return replaceString;
};

var my_string = ".jpg,.gif,.png";

alert(my_string.replaceArray([".", ","],["", ", "]));

Link to jsfiddle

3 个答案:

答案 0 :(得分:3)

您要替换的第一件事是句点("."),它是任何字符的正则表达式。你需要逃避它:"\\."

答案 1 :(得分:0)

我刚刚这样做了:

var target = '.jpg,.gif,.png';
target = target.replace(/\\./g, '');
target = target.replace(/,/g, ', ');

我确信它可以更有效地完成,但这将完成工作。

答案 2 :(得分:0)

您可以将您的fn更改为:

function strToArr(str)
{
     var res = str.replace(/\./g, "");
     return res.split(",");
}