2017-04-05 72 views
-1


我得到了使用map數組劃分子字符串和替換多個子字符串的結果。 我想分割用正長度的字符串其子被替換正則表達式替換長度爲n的多個子字符串,從javascript中的字符串中拆分

之前

例如:AABBCCDDEE

MapArray : { 
    AA: A, 
    AB: B, <<<< this 
    BB: F, 
    CC: C, 
    DD: D, 
    EE: E 
} 


結果:AFCDE

我需要的字符串與長度被分割2,以便代碼不會替代'AB',而不是單獨替換'AA'和'BB'。

如果需要,我可以解釋更多!提前致謝!

+3

你能後預計結果的一個例子! –

+0

如果你只是想挑出重複的字符,你可以使用'/([A-Z])\ 1 +/g'這樣的正則表達式,它只能匹配2個或多個相同大寫字母的序列。如果你想將它限制爲2,你可以使用'/([A-Z])\ 1 {1}/g',它將匹配AA,但只有AAA的第一個AA。 –

+0

@NicolasBudig或只是'/([A-Z])\ 1/g'爲'{1}'爲默認! –

回答

1

將字符串拆分爲2個字符長度部分的代碼來自here,然後它應用該映射並輸出結果字符串。

var mapArray = { 
 
    AA: 'A', 
 
    AB: 'B', 
 
    BB: 'F', 
 
    CC: 'C', 
 
    DD: 'D', 
 
    EE: 'E' 
 
}; 
 

 
var inp = "AABBCCDDEEX"; 
 
var out = inp.match(/.{1,2}/g).map(a => mapArray[a] || "-").join(''); 
 

 
console.log(out);

相關問題