Javascript用字符串中的部分部分替换部分?

时间:2013-11-22 20:46:11

标签: javascript

我有一个类似

的字符串
http://string.com/__11_22__/stuff

我需要取这个字符串并将其替换为部分字符串,所以我最终得到了

http://string.com/11/stuff

http://string.com/22/stuff

取决于if语句(是country blah还是blah2)。因此,如果国家是等等的,如果国家是blah2,我最终会得到...11/...我会以...22/...

结束

但我对如何操作感到困惑,格式将始终相同,两个_后跟两个数字后跟_和另外2个数字,然后再增加2个{{ 1}}

4 个答案:

答案 0 :(得分:0)

你可以这样做:

var url = 'http://string.com/__11_22__/stuff';
url = url.replace({ 
    blah: /__(\d+)_\d+__/, 
    blah2: /__\d+_(\d+)__/ 
}[country], '$1');

或更传统的东西:

var url = 'http://string.com/__11_22__/stuff';
switch (country) {
    case 'blah': url = url.replace(/__(\d+)_\d+__/, '$1'); break;
    case 'blah2': url = url.replace(/__\d+_(\d+)__/, '$1'); break;
}

答案 1 :(得分:0)

var s = 'http://string.com/__11_22__/stuff',
  replace = /__(\d\d)_(\d\d)__/;

s = s.replace(replace, function(match, part1, part2) {
  if (country == 'blah') {
    return part1;
  }
  else {
    return part2;
  }
});

答案 2 :(得分:0)

您可以执行以下操作:

var isCountry =true;
var str = 'http://string.com/__11_22__/stuff';

str = str.replace(/__(\d{2})_(\d{2})__/, isCountry ? '$1' : '$2');
console.log(str); // 'http://string.com/11/stuff'

答案 3 :(得分:0)

待办事项     var start = indexOf("__"); 之后,您可以var str.substring(start+2,start+4);代表第一个str.substring(start+5,start+7);代表第二个