我试图用javascript中的另一个字符串替换部分网址,例如我有以下内容:
res/icons/android/quickshop/icon-36-ldpi.png
res/icons/android/quickshop/icon-48-mdpi.png
res/icons/ios/quickshop/icon-72-hdpi.png
res/icons/ios/quickshop/icon-96-xhdpi.png
我希望将其替换为以下内容(quickshop是动态的,可以是任何系列的字符,主要是[a-z] [A-Z])
res/icons/android/homecenter/icon-36-ldpi.png
res/icons/android/homecenter/icon-48-mdpi.png
res/icons/ios/homecenter/icon-72-hdpi.png
res/icons/ios/homecenter/icon-96-xhdpi.png
在正则表达方面,我总是非常糟糕,任何人都可以提供帮助吗?
答案 0 :(得分:2)
试试这个:
/(([\w]+\/){3})([^\/]+)(\/.+)/gm
var re = /(([\w]+\/){3})([^\/]+)(\/.+)/gm;
var str = 'res/icons/android/quickshop/icon-36-ldpi.png';
var replaceWord = 'homecenter'
var subst = '$1' + replaceWord + '$4';
var result = str.replace(re, subst);
// show result
window.alert(result);
甚至可以写成一个函数:
function replaceURL(url, strReplace){
let re = /(([\w]+\/){3})([^\/]+)(\/.+)/gm;
var subst = '$1' + strReplace + '$4';
return url.replace(re, subst);
}
var originalURL = 'res/icons/android/quickshop/icon-36-ldpi.png';
var replaceWord = 'homepage';
var newURL = replaceURL(originalURL, replaceWord);
document.write(newURL);

答案 1 :(得分:1)
试试这个:
var str = "res/icons/android/quickshop/icon-36-ldpi.png\nres/icons/android/quickshop/icon-48-mdpi.png\nres/icons/ios/quickshop/icon-72-hdpi.png\nres/icons/ios/quickshop/icon-96-xhdpi.png",
result = str.replace(/([\w.-]+)(\/[\w.-]+)$/gm,"homecenter$2");
console.log(result);
alert(result);