我有这个图片网址:http://files.myweb.com/12/06/002_xz808/normal_paris_01.jpg
我需要得到这个 http://files.myweb.com/12/06/002_xz808/paris_01.jpg
我不能在 "normal_"
上使用简单的替换函数,因为这个关键字可能会意外出现在其路径中的文件名之前。我需要在最后一个 "normal_"
中使用它,但我不知道如何使用。请帮忙。
最佳答案
希望对您有所帮助:
function replNormal(normal) {
return normal.replace(/^(.*)normal\_(.*?)$/, '$1$2');
}
console.log(replNormal("http://files.myweb.com/12/06/normal_002_xz808/normal_paris_01.jpg"));
前面的正则表达式中的捕获组(括号内的部分)是贪心的,然后是惰性的。
贪婪的 (.*) 想要在停止捕获之前尽可能地扩展。
懒惰的 (.*?) 想要在满足捕获要求后尽快退出。
替换字符串中的反向引用告诉它将它在第一和第二捕获组中找到的内容直接连接在一起,跳过未捕获的 normal_
关于Javascript 匹配以从 URL 中删除部分文件名 - 替换最后一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12188561/