javascript - 拆分字符串值,但将换行符保留在新数组中
问题描述
在我对 textarea 元素的字符串值执行一些逻辑之后,我想保留换行符。假设我的文本区域中有这个字符串:
"Test
Newline here"
大批:["Test\nNewline", "here"]
我怎样才能把它保存成这样:["Test", "\n", "Newline", "here"]
我的代码:
let bodyText = "Test
Newline here"
let bodyTextArray = bodyText.split(/ |\n|(?=\n)/g)
基本上正在发生的事情是拆分和删除空格和“\ n”。使用积极的前瞻是行不通的,我尝试消极的前瞻,但没有成功。
有任何想法吗?
解决方案
你可以匹配那些:
let bodyText = `Test
Newline here`
let bodyTextArray = bodyText.match(/^\n|\S+/gm)
console.log(bodyTextArray)
详情:
^\n
- 行首和换行|
- 或者\S+
- 任何一个或多个非空白字符。
要支持 CRLF、LF 或 CR 行尾,请使用
/^(?:\r\n?|\n)|\S+/gm
其中(?:\r\n?|\n)
替换\n
并匹配一个 CR 和一个可选的 LF 字符,或者只是一个 LF 字符。