Ich habe einen Satz (dies ist ein dummer Beispielsatz), der so aussieht:
I_like_to_program__.
Ich brauche eine Funktion, damit es so aussieht:
I*like to program.
Ich habe diesen Ausdruck geschrieben:
var myExpression = new RegExp("\\_", "g");
return myString.replace(myExpression, " ").trim();
Das wird ausgegeben: "I like to program."
- Ich bin nah dran. Ich brauche nur das erste Leerzeichen, das durch ein * ersetzt werden muss, damit es wie I*like to program.
aussieht.
5 Antworten
Wenn Sie g
nicht hinzufügen, ersetzt Javascript standardmäßig nur einen Ersatz:
return myString.replace(/\__/, "").replace(/\_/, "*").replace(/\_/g, " ");
Ich ersetze zuerst alle _ Ersetzen durch "", danach haben wir ein Programm. Beim zweiten Ersetzen entferne ich dieses Leerzeichen (Programm) und beim dritten Ersetzen setze ich * an die erste Stelle.
DEMO
http://jsfiddle.net/saorabhkr/QV9qH/
Das Einfachste, was ich mir vorstellen kann, ist, es in zwei Schritten zu tun: Ersetzen Sie die erste Instanz durch *, iterieren Sie dann erneut und ersetzen Sie global durch ""
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());
mystring.replace("_", "*")
.replace(/_/g, " ");
Oder Sie könnten den regulären Ausdruck ganz so vermeiden:
mystring.replace("_", "*")
.split("_")
.join(" ");
var myString = "I_like_to_program__.";
var result = myString.replace(/\_/g, " ").replace(" ", "").replace(" ", '*');
alert(result);