1

私は次のような文(これはばかげた例文です)を持っています:

I_like_to_program__.

次のように表示する関数が必要です。

I*like to program.

私はこの表現を書きました:

var myExpression = new RegExp("\\_", "g");
return myString.replace(myExpression, " ").trim();

それは出力します:-"I like to program."私は近いです。次のようにするには、最初のスペースを*に置き換える必要があります。I*like to program.

4

5 に答える 5

8
mystring.replace("_", "*")
        .replace(/_/g, " ");

または、次のように正規表現を完全に回避することもできます。

mystring.replace("_", "*")
        .split("_")
        .join(" ");
于 2012-10-09T16:59:17.507 に答える
3

追加しない場合g、javascriptの置換はデフォルトで1つの置換のみになります。

return myString.replace(/\__/, "").replace(/\_/, "*").replace(/\_/g, " ");
于 2012-10-09T17:00:07.680 に答える
1

私が考えることができる最も簡単なことは、2つのステップでそれを行うことです-最初のインスタンスを*に置き換え、次にもう一度繰り返し、グローバルに「」に置き換えます

var myString = "I_LIKE_TO_PROGRAM";
var myExpression = new RegExp("\_");
myString = myString.replace(myExpression, "*").trim();
var newExpression = new RegExp("\_", "g");
alert(myString.replace(newExpression, " ").trim());
于 2012-10-09T16:58:57.540 に答える
1

最初にすべての _ replace を "" に置き換えます。これを行うと、 program が作成されます。したがって、2 回目の置換ではこのスペースを削除し (program .)、3 回目の置換では * を最初に置きます。

デモ

http://jsfiddle.net/saorabhkr/QV9qH/

于 2012-10-09T17:59:06.683 に答える
1
var myString = "I_like_to_program__.";
var result =  myString.replace(/\_/g, " ").replace("  ", "").replace(" ", '*');
alert(result);
于 2012-10-09T17:08:51.773 に答える