javascript - 使用未知长度字符串拆分 JavaScript 字符串,例如\n

标签 javascript regex string split

我有一个从后端生成的字符串,在不同位置具有未知长度的 \n 。这意味着我有类似的东西:

Lorem Ipsum\n\n\dolor sit amet\n\n\n\n\n,consecteur adipiscing\nelit

有没有办法使用随机长度 \n 字符将此字符串拆分为数组?

编辑:以下是一些额外的技术细节:

我正在使用 Apache POIJEE 来解析 Word 文档,因此我作为响应返回的字符串是由库生成的,我无法控制它。我已经浏览了该库使用的类,它确实在完成解析段落时添加了 \n 字符,它还为标题和副标题添加了 \t 字符,这里是如何精确返回字符串的最小化示例:

"I.\tIntroduction\t3\nII.\tECMA International :\t3\nIII.\tECMAScript & JavaScript :\t3\nIV.\tEditions ECMAScript :\t4\nV.\tECMAScript 2015 :\t5\na.\tNouvelles fonctionnalités « Number » et « Math » :\t5\n�?�\tEntiers Littéraux :\t5\n�?�\tNouvelles propriétés pour les objets « Number » et « Math » :\t5\nb.\tNouvelles fonctionnalités pour les strings :\t6\nc.\tLet & Const :\t6\n�?�\tLet :\t7\n�?�\tConst :\t8\nd.\tFonctions fléchées :\t8\ne.\tClasses :\t10\n�?�\tDéfinition d�??une classe :\t10\n�?�\tHéritage :\t11\n�?�\tMéthodes et propriétés statiques :\t12\n�?�\tGetters & Setters :\t12\nf.\tModules :\t13\ng.\tParamètres par défaut :\t14\nh.\tLa boucle For-Of :\t14\ni.\tGénérateurs :\t15\nj.\tPromises :\t15\nVI.\tConclusion :\t18\nVII.\tBibliographie :\t19\n\n\n\n"

这表示文档的摘要(整个字符串的一部分)。

直接将此字符串传递给 split 可以,但像下面这样传递返回的数据则不行:

ajax.post('tech/technology',`technology=${id}`)
.then((data) => {
    console.log(data.response.split(/\n+/));
})

最佳答案

只需按照 \n+ 的正则表达式进行拆分,该表达式将在一个或多个 \n 字符处拆分字符串:

const str = 'Lorem Ipsum\n\n\dolor sit amet\n\n\n\n\n,consecteur adipiscing\nelit';
console.log(str.split(/\n+/));

请注意,分割单个 \n 字符然后过滤掉空字符串(从而避免使用正则表达式)实际上可能更有效:

const str = 'Lorem Ipsum\n\n\dolor sit amet\n\n\n\n\n,consecteur adipiscing\nelit';

console.log(str.split('\n').filter(Boolean));

关于javascript - 使用未知长度字符串拆分 JavaScript 字符串,例如\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58146427/

相关文章:

javascript - 如何点击没有id的按钮

ruby - 识别空格与其他字符在字符串中运行

c# - 正则表达式嵌入 {{ 匹配

java - 正则表达式找到最短匹配?

python - 如何将混合语法列表(范围等)转换为单个列表?

javascript - 创建网格,其中所有其他(字符串)元素均为空

javascript - 如何在对象数组中找到一个对象的所有匹配键和值?

javascript - 未捕获的语法错误 : Unexpected token }

c++ - 是否可以在 C++ 中增加变量范围?

javascript - 导航(突出显示)表中的指定行