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' ]