根据jquery

时间:2016-05-26 14:57:45

标签: javascript jquery

我有一个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,我认为可以在替换功能中使用正则表达式,但我不知道该怎么做。

谢谢!

2 个答案:

答案 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')