我有这个字符串
"/mp3/mysong.mp3"
我需要使用javascript使这个字符串看起来像这样。
"/mp3/myusername/mysong.mp3"
我的猜测是找到" /"的第二次出现,然后追加" myusername /"那里或前置" / myusername"但是我不确定如何在javascript中执行此操作。
答案 0 :(得分:2)
只需将字符捕获到第二个/
符号并将其存储到一个组中。然后将匹配的字符替换为组1中的字符加上字符串/myusername
正则表达式:
^(\/[^\/]*)
替换字符串:
$1/myusername
> 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。