我有一个www.site.com网址,我希望用英国代替www,但我还需要将英国替换为CA或HK,具体取决于用户所在的地区。
我目前有这段代码
oQuery('a.product-list-item').each(function(){
var href = oQuery(this).attr('href');
// change the href to something else
var newhref = href.replace(/www/, 'uk');
// update href
oQuery(this).attr('href', newhref);
});
但这并不能解释他们是否从www更改为CA或UK,或者如果他们从英国更改为HK或CA更改为HK,我认为可以在替换功能中使用正则表达式,但我不知道该怎么做。
谢谢!
答案 0 :(得分:0)
您可以使用此替换版本:
var regions = ['uk', 'ca', 'be', 'cz', 'hu', 'ma'];
oQuery('a.product-list-item').each(function(index){
var href = oQuery(this).attr('href');
// change the href to something else
var newhref = href.replace(/\w+(\.site\.com)/, regions[index] + '$1');
// update href
oQuery(this).attr('href', newhref);
});
只需将正确的网站名称放在我放置的位置" site.com",确保您使用反斜杠转义一个点。
答案 1 :(得分:0)
您可以动态构建交替正则表达式。
var regionList = ['www', 'uk', 'ca', 'hk'];
var regionRegex = new RegExp('\b(?:'+regionList.join('|')+')\b');
!function($){
function regionateLinks(region) {
$('a').each(function(){
$(this).attr('href', $(this).attr('href').replace(regionRegex, region));
});
}
}(oQuery);
regionateLinks('uk');
它的工作原理如下:
'http://www.example.com'.replace(/\b(?:www|uk|ca|hk)\b/, 'uk')