Computer >> Máy Tính >  >> Lập trình >> Javascript

Làm thế nào để chia chuỗi lớn thành các đoạn có kích thước n trong JavaScript?

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>

Đầu ra
["tutorialspoint"]
["tu","to","ri","x"]
["tut","ori","als","poi","nt"]