javascript - 将字符串拆分为每个索引 n 个单词的数组

标签 javascript arrays regex string

我有一个字符串,我想拆分成一个数组,每个索引有(例如)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/

相关文章:

javascript - 检测字符串数组中的异常值 - VanillaJS 和 parseInt

c++ - 使用 memcpy 函数复制 char 数组 C++

python - 使用 numpy 索引数组索引 numpy 数组

javascript - 覆盖 JavaScript 数组的打印表示

regex - AWK 打印找到匹配项的列号

javascript - jQuery 验证插件、Bootstrap、Jasny Bootstrap 文件输入正则表达式 - 验证在 Firefox 中工作而不是在 Chrome/IE 中

mysql - hibernate 正则表达式 MySQL

javascript - 重复 DIV 上的按钮只影响那个 DIV?

javascript - 使用SteamAPI获取当前用户的GameID

javascript - 如何在传单中绘制图形元素(节点和边)?