如何在 JavaScript 中将长字符串分割成 n 个大小的块?
字符串是由一个或多个字符组成的序列,其中包含数字、字母、符号或特殊字符。在 JavaScript 中,字符串是不可变的。也就是说,一旦创建了一个字符串,就不能更改其值。
例如,考虑以下代码片段,我们在这里创建了一个字符串变量并为其分配了一个值(Tutorialspoint)。在下一条语句中,我们尝试更改字符串第一个索引处的字符。然后我们显示字符串的内容。
let x = 'Tutorialspoint'; x[0] = 't'; console.log(x); //Tutorialspoint.
执行此代码将显示字符串“Tutorialspoint”,即原始字符串的值没有改变。
但是,您可以为现有字符串分配新值 -
let y = 'Tutorialspoint'; y = 'tutorialspoint'; cosole.log(y); //tutorialspoint.
将长字符串分割成块
我们需要将一个字符串分割成 n 个大小的块,这意味着我们需要将一个长字符串分割成 n 个大小的子字符串。
例如,考虑字符串“helloworld”,如果 n 的值为 2,则输出将为“he”、“ll”、“ow”、“or”、“ld”。
让我们看看一些输入和输出场景 -
让我们考虑一个场景,我们有一个字符串,并且我们正在将字符串以 2 个字符的长度进行分割。
Input = 'Tutorialspoint' Output = 'Tu', 'to', 'ri', 'al', 'sp', 'oi', 'nt'
让我们假设另一种场景,输入字符串中字符之间的空格在某些情况下也将被计算在内。
Input = 'Hello my movie is RRR' Output = 'He', 'll', 'o ', 'my', ' m', 'ov', 'ie', ' i', 's ', 'RR', 'R'
在 JavaScript 中,我们有很多方法可以将长字符串分割成 n 个大小的块。让我们看看下面的示例。
split() 方法
JavaScript 中的split()方法将字符串分割成一个(子)字符串数组。此方法将在一个新数组中返回输出,并且不会修改原始字符串。
分割单词
在下面的示例中,我们有一个包含一些字符的输入字符串。我们执行了split(" ")方法,它将通过分割每个单词来返回字符串。
<html> <body> <button onClick = "split()"> Click </button> <h4 id = "output"></h4> <script> function split() { var string = "Hello my name is hrithik roshan"; const newArray = string.split(" "); document.getElementById("output").innerHTML = newArray; }; </script> </body> </html>
正如我们在上面输出中看到的,字符串被分割成了各个单词。
N 个块的单词
现在,下面的程序将给定的输入字符串分割成 n 个大小的块。
<html> <body> <script> var v = []; var str = "Hello my name is hrithik roshan" var t = str.split(""); 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>
示例 2
分割字符,包括空格
在下面的示例中,我们有一个包含字符的输入字符串。通过使用split("")方法,字符串将按每个字符进行分割。空格也将作为单个字符进行计数。
<html> <body> <button onClick = "split()">Click</button> <h4 id = "output"></h4> <script> function split() { var string = "Hello my name is Allu Arjun"; const newArray = string.split(""); document.getElementById("output").innerHTML = newArray; }; </script> </body> </html>
在输出中,字符串被分割成了各个字符。
示例 3
使用 limit 参数分割
在下面的示例中,我们有一个包含一些字符的输入字符串。我们执行了包含 limit 参数的分割操作。由于我们在 limit 参数中输入了 3,这将返回输入字符串中的三个单词。
<html> <body> <button onClick = "split()"> Click</button> <h4 id = "output"></h4> <script> function split() { var string = "Winner is Neeraj chopra"; const newArray = string.split(" ", 3); document.getElementById("output").innerHTML = newArray; }; </script> </body> </html>
由于我们在 split() 方法中传递了 3,因此字符串将被分割成 3 个单词。
Learn JavaScript in-depth with real-world projects through our JavaScript certification course. Enroll and become a certified expert to boost your career.
Regex() 方法
要使用正则表达式分割字符串,regex 方法有一个参数用于包含要分割给定输入字符串的大小。
语法
如果我们想获取任何字符串的极端 n 个大小的子字符串,则语法如下:
str.match(/.{1,n}/g); // Enter size of substring in 'n'
如果字符串包含换行符或回车符,则语法如下:
str.match(/(.|[\r
]){1,n}/g); // Enter size of substring in 'n'
示例
在下面的示例中,我们检查了输入字符串是否为空。如果输入字符串大于 0,我们执行了 regex 方法并提供了分割字符串的大小。此方法还将计算字符之间的空格。
<!DOCTYPE html> <html> <head> <button onClick = "regex()">Click me! </button> <p id = "para"> </p> <p id = "para1"> </p> <p id = "para2"> </p> <script> function regex(){ stringsplit = function(str, size) { while (str == null) return []; str = String(str); return size > 0 ? str.match(new RegExp('.{1,' + size + '}', 'g')) : [str]; } document.getElementById("para").innerHTML = stringsplit('You are in Hyderabad') + "<br>"; document.getElementById("para1").innerHTML = stringsplit('Jaipur is a pink city',3) + "<br>"; document.getElementById("para2").innerHTML = stringsplit('Vizag is city of destiny',4); }; </script> </head> </html>