如何在整个字符串中用其他字符串替换字符串

时间:2012-12-20 10:45:16

标签: javascript jquery-ui jquery

我有一个字符串

        var countries = india*australia*pakistan*...
        var replace = countries.replace("*",",");

然后它将字符串作为

        replace = india,australia*pakistan*...

我想替换所有* with,.how我可以用jquery或javascript

3 个答案:

答案 0 :(得分:7)

像这样:

result = original.replace(/\*/g, ',');

JavaScript的String#replace函数可以为第一个参数接受字符串或正则表达式。如果它是一个字符串,则替换仅在第一次匹配时发生。如果它是正则表达式,如果指定g标志(全局),它将是第一个匹配或全部匹配。

正则表达式为\*,表示“匹配文字*”(您需要反斜杠,否则*对于正则表达式来说是特殊的。)

答案 1 :(得分:3)

你需要带有全局(g)标志的正则表达式:

var replace = countries.replace(/\*/g,",");

http://www.regextester.com/jssyntax.html

答案 2 :(得分:0)

你的情况可能有些过分,但如果你打算多次这样做,请考虑一下:

RegExp.escape = function(str) {
    return (str+'').replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
};

String.prototype.replaceAll = function(string, replacement) {
    return this.replace(new RegExp(RegExp.escape(string), "g"), replacement);
};

console.log("This*is*a*test".replaceAll("*", " ")); // logs 'This is a test'

还负责转义搜索字符串(因此是RegExp.escape的定义),因此您可以自由地将任何内容作为replaceAll的第一个参数