Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Chia chuỗi lớn thành các đoạn (chunks) kích thước n trong JavaScript


2 cách chia chuỗi thành các substring độ dài n:

1) Cách truyền thống (for loop)

Logic thuần túy, số chunk phải xác định trước.

Ví dụ: Chia "tutorixtutorixtutorix" thành chunk 3 ký tự

<html> <body> <script> var v = []; var str = "tutorixtutorixtutorix"; var t = str.split(""); document.write(t + "</br>"); for (var i = 0; i < t.length; i++){ if((i % 3) == 2){ v.push(t[i-2].concat(t[i-1], t[i])); } } document.write(v); </script> </body> </html>

Kết quả

tut,ori,xtu,tor,ixt,uto,rix

2) Cách Regex (linh hoạt)

Không cần xác định trước số chunk. Cú pháp chung:

str.match(/.{1,n}/g); // n = kích thước chunk

Nếu chuỗi có newline:

str.match(/(.|[\r\n]){1,n}/g);

Hàm chung:

function chunkString(str, size) { return str.match(new RegExp('.{1,' + size + '}', 'g')); }

Ví dụ

<html> <body> <script> stringChop = function(str, size){ if (str == null) return []; str = String(str); return size > 0 ? str.match(new RegExp('.{1,' + size + '}', 'g')) : [str]; } document.write(stringChop('tutorialspoint') + "<br>"); document.write(stringChop('tutorix', 2) + "<br>"); document.write(stringChop('tutorialspoint', 3)); </script> </body> </html>

Kết quả

["tutorialspoint"] ["tu","to","ri","x"] ["tut","ori","als","poi","nt"]