2017-04-05 18 views
-1


マップ配列を使用して部分文字列を分割し、複数の部分文字列を置き換える結果が得られました。 その部分文字列が長さnの複数の部分文字列を置換する、JavaScriptの文字列から分割する

例:交換される前に、私は長さnの文字列を分割したいと思います:AABBCCDDEE

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


結果:AFCDE

私は文字列の長さに分割する必要が2に置き換え、 'AA'と 'BB'を別々に置き換えるのではなく、 'AB'を置き換えることはありません。

必要に応じてもっと説明できます!前もって感謝します!

+3

あなたが期待される結果との例を投稿することができます! –

+0

繰り返し文字を選びたい場合は、 '/([A-Z])\ 1 +/g'のような正規表現を使うことができます。これは2つ以上の同じ大文字のシーケンスにのみ一致します。これを2に制限したい場合は、AAと一致する '/([A-Z])\ 1 {1}/g'を使うことができますが、例えば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);

関連する問題