Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何剪断绳子?_Javascript - Fatal编程技术网

Javascript 如何剪断绳子?

Javascript 如何剪断绳子?,javascript,Javascript,如果我有一个字符串,例如var myStr=“aaaaaaaa BBBBB CCCCC DDDDD…”,该字符串可以有不同的长度,其中包含带空格的单词 我想有一个函数,它可以将字符串转换成数组,也就是说字符串将被切割成数组中的元素, 其中,数组的每个元素包含字符串中的单词,其总长度(包括单词之间的空格)小于10个字符 (数组的每个元素始终包含完整的单词和单词之间的空格,而不是从中间剪切单词) 我试过: var words=myStr.split(' '); 然后。。。。什么是有效的实施方法?试

如果我有一个字符串,例如
var myStr=“aaaaaaaa BBBBB CCCCC DDDDD…”
,该字符串可以有不同的长度,其中包含带空格的单词

我想有一个函数,它可以将字符串转换成数组,也就是说字符串将被切割成数组中的元素, 其中,数组的每个元素包含字符串中的单词,其总长度(包括单词之间的空格)小于10个字符

(数组的每个元素始终包含完整的单词和单词之间的空格,而不是从中间剪切单词)

我试过:

var words=myStr.split(' ');
然后。。。。什么是有效的实施方法?

试试:

var words = myStr.replace(/(\s)/g, ' ').split(' ');
(从头部开始,未测试)

获得单词后,您可以迭代单词,并将每个单词推入一个新数组,如下所示:

编辑#2
var words=“Lorem ipsum door sit amet,concetetur adipiscing elit.Sed vulputate,velit et luctus tristique,libero quam ornare ligula,sagittis consequat massa tellus vel nulla.”分割(
/\+/
);
var输出=[字[0]];
for(var i=1;i
var myStr = 'xxx yy wwwwww vvvv bbbbbbbbb cccccccccc a ddddddddddd eee';
var myArray = myStr.match(/.{1,10}(\s|$)|\S{1,10}(?!\s)/g);
for (var i in myArray) myArray[i] = myArray[i].replace(/\s+$/, '');
// myArray => [ 'xxx yy', 'wwwwww', 'vvvv', 'bbbbbbbbb', 'cccccccccc', 'a', 'dddddddddd', 'd eee' ]

编辑2011-05-31:反映明确的要求

您的意思是将较长的单词切成薄片,还是从最终数组中排除?是的,较长的单词将被切成薄片,但始终按单词之间的空格分隔,数组中每个元素的总长度不应超过10个字符。拆分是实现您需要的内容的正确方法want-出了什么问题?最好向我们显示预期的输出,如
['AAAAAAA','bbbbbbb CCCCC'.]
。否则很难理解。@metaforce:是的,它有:不,这不符合我的要求,例如,如果myStr='AAA BB',您的函数将给出结果[“AAA”,“BB”],但对于这种情况,结果应该是[“AAA BB”],因为总长度小于此正则表达式模式的10个字符:/(\s){10}/gAlso注意:我认为在十个字符限制中“包括空格”的问题上存在混淆。如果是这样,更简单的正则表达式应该是
\s{1,10}
,它将匹配最多十个非空格字符的任何序列。OP希望
将“AAA BB”
拆分为
[“AAA BB”]
,但
将“AAAAA BBBBBB”
拆分为
[“AAAAA”,“BBBB”]
,因为
AAAAA BBBBBB
是11个字符。
var myStr = 'xxx yy wwwwww vvvv bbbbbbbbb cccccccccc a ddddddddddd eee';
var myArray = myStr.match(/.{1,10}(\s|$)|\S{1,10}(?!\s)/g);
for (var i in myArray) myArray[i] = myArray[i].replace(/\s+$/, '');
// myArray => [ 'xxx yy', 'wwwwww', 'vvvv', 'bbbbbbbbb', 'cccccccccc', 'a', 'dddddddddd', 'd eee' ]