Có hai cách để chia một chuỗi lớn thành chuỗi con có kích thước n.
1) Phương pháp thông thường
Đây là một phương pháp logic thuần túy trong đó chỉ sử dụng các phương pháp thông thường như vòng lặp for, concat, modulous, v.v. Phương pháp này không phức tạp như phương pháp regex, vì nó là một phương pháp được xác định trước. Số lượng đoạn mà chuỗi được chia phải được xác định trước trước khi bắt đầu viết mã.
Trong ví dụ sau, chuỗi "tutorixtutorixtutorix" được chia thành 3 phần chuỗi con.
Ví dụ
<html> <body> <script> var v = []; var str = "tutorixtutorixtutorix" var t = str.split(""); document.write(t); document.write("</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>
Đầu ra
tut,ori,xtu,tor,ixt,uto,rix
2) Phương thức Regex
Nó không phải là một phương pháp được xác định trước. Phương thức Regex cung cấp một vị trí để đề cập đến kích thước để phân đoạn chuỗi.
Nói chung, đối với bất kỳ chuỗi nào mà bạn muốn trích xuất các chuỗi con có kích thước tối đa là n, thì cú pháp là
str.match(/.{1,n}/g); // Replace n with the size of the substring
Nếu chuỗi chứa bất kỳ dòng mới hoặc dấu xuống dòng nào, thì cú pháp là
str.match(/(.|[\r\n]){1,n}/g); // Replace n with the size of the substring
Cú pháp ban đầu của mã là
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')); document.write("<br>"); document.write(stringChop('tutorix',2)); document.write("<br>"); document.write(stringChop('tutorialspoint',3)); </script> </body> </html>