使用Regex Javascript替换部分URL

时间:2016-04-15 21:49:20

标签: javascript regex

我试图用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

在正则表达方面,我总是非常糟糕,任何人都可以提供帮助吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

/(([\w]+\/){3})([^\/]+)(\/.+)/gm

Regex101 Demo

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);