Javascript将字符串中的part替换为part的part

Javascript replace part with part of part in string?

本文关键字:part 替换 字符串 Javascript      更新时间:2023-09-26

我有一个类似的字符串

http://string.com/__11_22__/stuff

我需要把这个字符串替换成它的一部分,这样我就得到了

http://string.com/11/stuff

http://string.com/22/stuff

取决于if语句(是国家等等)。所以,如果国家是废话,我会得到...11/...如果国家是胡说八道,我会收到...22/...

但我有点困惑于如何做到这一点,格式总是一样的,两个_,然后两个数字,然后一个_,再加两个数字然后再加2个_

您可以这样做:

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

您可以执行以下操作:

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'

Dovar start = indexOf("__");之后,您可以对第一个执行var str.substring(start+2,start+4);,对第二个进行str.substring(start+5,start+7);