2016-10-14 6 views
-1

私はランダムな文字列だったと仮定すると:私はJavascriptの4つのグループにこの文字列を分割する方法を文字列をグループに吐き出す方法は?

string = "223243902345676"; 

を、持っている:

string = ['0223','2439','0234','5676']; 
+0

したがって、欠落している数字を埋めるためにゼロを追加しますか?何を試しましたか? – Li357

+0

私は.splice関数を使って遊んでみましたが、役に立たない –

答えて

2

このコード

// 0. declare input value 
 
const input = '223243902345676' 
 
const inputs = input.split('') 
 

 
// 1. get how many zero padding 
 
const padding = 4 - inputs.length % 4 
 

 
// 2. get zero padding array 
 
const zeroItems = [] 
 
for (let i = 0; i < padding; i++) { 
 
    zeroItems.push(0) 
 
} 
 

 
// 3. concat 2 array (now we get items with zero padding) 
 
const mergeItems = zeroItems.concat(inputs) 
 

 
// 4. get each item of 4 characters and put to result 
 
const result = [] 
 
const LEN = mergeItems.length/4 
 
for (let i = 0; i < mergeItems.length; i += LEN) { 
 
    const resultItems = mergeItems.slice(i, i + LEN) 
 
    result.push(resultItems.join('')) 
 
} 
 

 
console.log(result) // print ["0223", "2439", "0234", "5676"]
に従ってください

1

これは私がそれをやる方法です。ここ

yourString.match(/.{1,4}/g);

1

'0' パッディングを有する別の方法です。

let string = '223243902345676'; 
const fourDigits = /\d{4}/g; 

const result = string 
    .split('') 
    .reduce((prev, curr, index) => { 
     let padding = '0' + prev; 
     return (index === 1) ? padding += curr : prev += curr; 
    }) 
    .match(fourDigits); 

console.log(result); 

// ['0223','2439','0234','5676']; 
関連する問題