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 的替换默认为只有一个替换:

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

我能想到的最简单的事情是分两步完成——用*替换第一个实例,然后再次迭代并用“”全局替换

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
var myString = "I_like_to_program__.";
var result =  myString.replace(/\_/g, " ").replace("  ", "").replace(" ", '*');
alert(result);
于 2012-10-09T17:08:51.773 回答
1

我首先将所有_替换为“”,在我们这样做之后我们将拥有程序。因此,在第二次替换中,我将删除(程序。)这个空间,在第三次替换中,我将 * 放在首位。

演示

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

于 2012-10-09T17:59:06.683 回答