2013-11-22 227 views
-2

我有一个字符串像JavaScript将部分字符串替换为部分字符串?

http://string.com/__11_22__/stuff 

,我需要借这个字符串,并将它的一部分替代它,所以我结束了

http://string.com/11/stuff 

http://string.com/22/stuff 

根据根据if语句(是国家等值线或等值线2)。所以,如果国家是胡说我就结束了...11/...如果国家blah2我最终会与...22/...

但我有如何做到这一点有点困惑,该格式将始终是相同的,其次是二两_数字后面是_和2位数以上,然后2个_

+0

你需要证明你已经尝试做了什么为var str.substring(start+2,start+4);第一和str.substring(start+5,start+7);。 – j08691

+0

如果您没有尝试过一些代码,我不打算提供完整的解决方案,但我至少可以指出使用“正则表达式”或“正则表达式”的想法。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions – Katana314

回答

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

var start = indexOf("__"); 可以之后第二