我有一个很长的字符串,并希望将其拆分为+/- 100个字符的段,如果它超过100则不然。 这意味着我有这样的字符串:
"asld asö öasdn askdn asklcanscklans cakslcna acsklcnasclk ncaslkcnas casld asö öasdn askdn asklcanscklans cakslcna acsklcnasclk ncaslkcnas c"
1: "asld asö öasdn askdn asklcanscklans cakslcna acsklcnasclk ncaslkcnas casld asö öasdn askdn asklcanscklans"
2: "cakslcna acsklcnasclk ncaslkcnas c"
正如你所看到的,我需要在第一个空格之后,在第100个字符之后将它们分开。
我对如何使用.split()
无能为力答案 0 :(得分:3)
您可以使用indexOf在字符串中搜索指定的字符,indexOf还为字符串中的起始索引提供可选参数,为您提供子字符串的位置或执行您需要执行的操作:
string.indexOf(' ',100);
如果要执行进一步的拆分,可以使用循环运行结果并执行相同的操作。
在这里使用正则表达式有一些建议可能没问题,我想说的是如果你想使用正则表达式然后离开并了解模式的作用。使用您不理解的代码会使您以后的生活变得困难。
答案 1 :(得分:2)
string.split(/(.{100}\S*)\s/).filter(function(e){return e;});
答案 2 :(得分:2)
您可以在位置100之后找到第一个空格:
var index = string.indexOf(' ', 100);
你想在这个空格之后拆分,所以你的第二部分从:
开始var splitPoint = string.indexOf(' ', 100) + 1;
如果字符串长度不是100个字符,或者在位置100之后没有空格,则splitPoint
为零(因为indexOf
返回-1),并且您不想拆分。
因此您可以将字符串拆分为:
if (splitPoint > 0) {
var part1 = string.substring(0, splitPoint);
var part2 = string.substring(splitPoint);
// Do something with the parts.
}
答案 3 :(得分:0)
正如documentation中所述,您可以使用RegExp
进行拆分,并使用捕获组捕获其中的一部分。
var s = "asld asö öasdn askdn asklcanscklans cakslcna acsklcnasclk ncaslkcnas casld asö öasdn askdn asklcanscklans cakslcna acsklcnasclk ncaslkcnas c";
s.split(/(.{100}[^\s]*)\s/);
// 1 : "asld asö öasdn askdn asklcanscklans cakslcna acsklcnasclk ncaslkcnas casld asö öasdn askdn asklcanscklans"
// 2 : "cakslcna acsklcnasclk ncaslkcnas c"
要删除空元素,可以使用filter
方法:
s.split(/(.{100}[^\s]*)\s/).filter(function(s) {
return s.length > 0;
});
答案 4 :(得分:-1)
您可以使用substr
轻松完成var your_string = "asld asö öasdn askdn asklcanscklans cakslcna acsklcnasclk ncaslkcnas casld asö öasdn askdn asklcanscklans cakslcna acsklcnasclk ncaslkcnas c"
var string1 = your_string.substr(0,105);
var string2 = your_string.substr(106,your_string.length)