javascript在" /"的第二次出现时替换文本;

时间:2014-10-01 12:03:45

标签: javascript regex string replace

我有这个字符串

"/mp3/mysong.mp3"

我需要使用javascript使这个字符串看起来像这样。

"/mp3/myusername/mysong.mp3"

我的猜测是找到" /"的第二次出现,然后追加" myusername /"那里或前置" / myusername"但是我不确定如何在javascript中执行此操作。

3 个答案:

答案 0 :(得分:2)

只需将字符捕获到第二个/符号并将其存储到一个组中。然后将匹配的字符替换为组1中的字符加上字符串/myusername

正则表达式:

^(\/[^\/]*)

替换字符串:

$1/myusername

DEMO

> var r = "/mp3/mysong.mp3"
undefined
> r.replace(/^(\/[^\/]*)/, "$1/myusername")
'/mp3/myusername/mysong.mp3'

OR

使用前瞻。

> r.replace(/(?=\/[^/]*$)/, "/myusername")
'/mp3/myusername/mysong.mp3'

(?=\/[^/]*$)匹配前一个/符号之前的边界。用/myusername替换匹配的边界将为您提供所需的结果。

答案 1 :(得分:2)

这有效 -

>  "/mp3/mysong.mp3".replace(/(.*?\/)(\w+\.\w+)/, "$1myusername\/$2")
"/mp3/myusername/mysong.mp3"

正则表达式的演示和解释here

答案 2 :(得分:1)

使用它:

var str = "/mp3/mysong.mp3";
var res = str.replace(/(.*?\/){2}/g, "$1myusername/");
console.log(res);

这将在第二个/之后插入文本myusername。