【发布时间】:2019-09-28 12:43:49
【问题描述】:
我有一个从后端生成的字符串,在不同的位置具有未知长度的\n。意思是我有类似的东西:
Lorem Ipsum\n\n\dolor sit amet\n\n\n\n\n,consecteur adipiscing\nelit
有没有办法使用随机长度\n 字符将此字符串拆分为数组?
编辑:以下是一些额外的技术细节:
我正在使用Apache POI 和JEE 来解析word 文档,因此我作为响应返回的字符串是由库生成的,我无法控制它。我已经浏览了库使用的类,它确实在完成解析段落时添加了\n 字符,它还为标题和副标题添加了\t 字符,这是一个最小化的字符串示例返回:
“I.\tIntroduction\t3\nII.\tECMA 国际:\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 对象«数»和«数学»:\t5\nb.\tNouvelles fonctionnalités pour 文件字符串:\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 类:\t10\n�?�\tHéritage:\t11\n�?�\tMéthodes et propriétés statiques:\t12\n�?�\tGetters & 设置器:\t12\nf.\tModules:\t13\ng.\tParamètres par 默认:\t14\nh.\tLa boucle For-Of :\t14\ni.\tGénérateurs :\t15\nj.\t承诺:\t15\nVI.\t结论:\t18\nVII.\t书目:\t19\n\n\n\n"
这表示文档的摘要(整个字符串的一部分)。
将这个字符串直接传递给一个 split 是可行的,但是像下面这样传递返回的数据却不行:
ajax.post('tech/technology',`technology=${id}`)
.then((data) => {
console.log(data.response.split(/\n+/));
})
【问题讨论】:
-
好吧,它适用于您的示例,如果您不显示它,我们无法看到整个文本的不适用。
-
@Toto 整个文本太长,无法粘贴到此处,我注意到的问题不在于文本本身。我试图将它直接从不起作用的响应中拆分出来(它记录了一个包含 2 个值的数组、字符串本身和一个空字符串),但是如果我复制整个字符串并将其传递给一个变量并拆分它,它有效。所以问题是这个
data.response在解析时不是一个格式良好的字符串?
标签: javascript regex string split