我有一个字符串,我想拆分成一个数组,每个索引有(例如)3 个词。 我还希望它做的是,如果它在该字符串中遇到一个换行符,它将“跳过”3 个单词的限制并将其放入一个新索引中,并开始在该新索引中添加单词,直到它再次达到 3 .例子
var text = "this is some text that I'm typing here \n yes I really am"
var array = text.split(magic)
array == ["this is some", "text that I'm", "typing here", "yes I really", "am"]
我试过研究正则表达式,但到目前为止我还不能真正理解正则表达式中使用的语法。
我编写了一种复杂函数的方法,通过首先使用 .split("");
将字符串拆分为单独的单词数组,然后使用循环将字符串拆分为 3 行将每 3 个添加到另一个数组中。但是我不能考虑换行符。
最佳答案
你可以试试这个模式:
var result = text.match(/\b[\w']+(?:[^\w\n]+[\w']+){0,2}\b/g);
由于量词 {0,2}
默认是贪心的,只有在找到换行符时才会取小于 2 (N-1) 的值 < i>(因为这里不允许换行:[^\w\n]+
) 或者如果你是字符串的结尾。
关于javascript - 将字符串拆分为每个索引 n 个单词的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23596731/