我有一个类似
的字符串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}}
答案 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);
代表第二个