我是新手,并且有一堆数据字符串(句子)。我试图将每个句子分成子串,其中每个字符串的长度不超过该句子中最长单个单词的长度,并返回其原始序列中的所有单词,并带有换行符(Photoshop回车,“\ r”)除以那个句子的子串。每个字符串中的单词不是连字符(只有完整的单词或单词组在空格所在的位置*)。*编辑:使用最大字符,直到最长单词的字符数...所以一行将有2或者可能是3个单词,直到最长单词的长度。
我找到了分割和计算单词数组的例子,按字符长度排序,或者在设置字符,所有空格等处添加换行符。但是我所知道的任何内容都不足以看到对此结果的简单修改。非常感谢任何帮助。
答案 0 :(得分:1)
使用替换,您可以用\n
替换所有空格以获得结果。
a = 'This show navigation menu when you scroll up page 0px up (in right-way). But trying to show after 200px (on page scroll-up) means not showing right way want show and hide after 200px when scroll \n up page.'
b = a.replace(/\s{1,}/g,"\n");
alert(b)
答案 1 :(得分:0)
尝试将.split
与正则表达式一起使用:
var a = 'This show navigation menu when you scroll up page 0px up (in right-way). But trying to show after 200px (on page scroll-up) means not showing right way want show and hide after 200px when scroll \n up page.'
var outputArray = a.split(/\s+/);
console.log(outputArray);
如果你想要更直接的方式:
var a = 'This show navigation menu when you scroll up page 0px up (in right-way). But trying to show after 200px (on page scroll-up) means not showing right way want show and hide after 200px when scroll \n up page.'
a.match(RegExp('.{0,' + Math.max.apply(0, a.match(/\w+/g).map(function(l) {
return l.length;
})) + '}', 'g');
ES6:
a.match(RegExp(`.{0,${Math.max(...a.match(/\w+/g).map(l=>l.length))}}`), 'g')