我正在尝试用另一个字符串替换字符串中的路径段。我有一种感觉,RegEx将是最好的方式,但不知道如何。我想用另一个字符串替换xxxxx:
resources/audio/xxxxx/someaudio.mp3
“resources / audio /”的根路径将始终保持不变,但我正在尝试替换音频文件的父文件夹。音频文件是任意的,可以更改。有人可以帮忙吗?
答案 0 :(得分:2)
你可以试试这个:
var newFolder = "yyyy";
var r = "resources/audio/xxxxx/someaudio.mp3".replace(/(resources\/audio\/).*(\/.*)/g, '$1' + newFolder + '$2');
console.log(r);
看到它正常工作here。
答案 1 :(得分:0)
对捕获组使用replace
方法:
> 'resources/audio/xxxxx/someaudio.mp3'.replace(/\bxxxxx\/([^/]+)$/, 'yyyy/$1')
"resources/audio/yyyy/someaudio.mp3"
> 'resources/audio/xxxxx/anotheraudio.mp3'.replace(/\bxxxxx\/([^/]+)$/, 'yyyy/$1')
"resources/audio/yyyy/anotheraudio.mp3"
([^/]+)
匹配文件名并作为组1捕获。此组1在替换字符串中被引用为$1
。
或者使用积极的前瞻:
> 'resources/audio/xxxxx/someaudio.mp3'.replace(/\bxxxxx(?=\/[^/]+$)/, 'yyyy')
"resources/audio/yyyy/someaudio.mp3"
> 'resources/audio/xxxxx/anotheraudio.mp3'.replace(/\bxxxxx(?=\/[^/]+$)/, 'yyyy')
"resources/audio/yyyy/anotheraudio.mp3"