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 に答える