2013-11-22 224 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("__"); 可以之後第二