我有一个始终以数字30结尾的URL。我想用另一个数字100代替它。我不确定regex是否是最佳选择,如果是,该怎么做? 这是我的尝试,但是我正在寻找一种更专业的产品,该产品在任何情况下都可以使用,并且只更改URL的最后一位30。
let URL = "https://is5-ssl.mzstatic.com/image/thumb/Music/v4/5c/5a/a0/5c5aa0fd-978e-b038-3918-f6127f97295e/source/30x30bb.jpg";
URL.replace("/([30])\w+/g", "100");
先谢谢了。
答案 0 :(得分:1)
您可以使用此正则表达式
\/30x30([a-z]*\.\w+)$
let URL = "https://is5-ssl.mzstatic.com/image/thumb/Music/v4/5c/5a/a0/5c5aa0fd-978e-b038-3918-f6127f97295e/source/30x30bb.jpg";
let replace30 = (url) =>{
return url.replace(/\/30x30([a-z]*\.\w+)$/g, "/100x100"+ "$1")
}
console.log(replace30(URL))
console.log(replace30('http:hello.example.com/400x500bb.jpg'))
console.log(replace30('http:hello.example.com/source/helloworld.jpg'))
答案 1 :(得分:1)
let URL = "https://is5-ssl.mzstatic.com/image/thumb/Music/v4/5c/5a/a0/5c5aa0fd-978e-b038-3918-f6127f97295e/source/30x30bb.jpg";
let last_index=URL.lastIndexOf('/');
let substring=URL.substring(last_index + 1);
let replaced=substring.replace(/30/g,"100");
let newURL=URL.substr(0, last_index+1) + replaced;
console.log(newURL);
答案 2 :(得分:1)
您可以确保仅在最后一个斜杠之后的部分替换为以下内容:
var URL = "https://is5-ssl.mzstatic.com/image/thumb/Music/v4/5c/5a/a0/5c5aa0fd-978e-b038-3918-f6127f97295e/source/30x30bb.jpg";
var urlFixer = (url) => {
splitArray = url.split("/");
splitArray[splitArray.length-1] = splitArray[splitArray.length-1].replace("30x30","100x100");
return splitArray.join("/");
}
console.log(urlFixer(URL));