1

我有一个字符串

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

然后它将给字符串作为

        replace = india,australia*pakistan*...

我想将所有 * 替换为 , . 如何使用 jquery 或 javascript 来完成

4

3 回答 3

7

像这样:

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

JavaScript 的String#replace函数可以接受字符串或正则表达式作为第一个参数。如果它是一个字符串,则替换只发生在第一个匹配项上。如果它是一个正则表达式,那么如果您指定g标志(全局),它将是第一个匹配项或所有匹配项。

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

于 2012-12-20T10:46:07.013 回答
3

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

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

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

于 2012-12-20T10:46:01.120 回答
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

于 2012-12-20T10:57:43.347 回答