解析 HTML 后我得到以下对象:
我想去掉除一个以外的所有“↵”。我怎样才能做到这一点?我尝试过这样的事情:
weirdString.replace(/(\r\n|\n|\r)/gm, ""));
但是,这会替换所有“↵”,但正如我已经提到的,我想替换除第一个之外的所有......
最佳答案
您可以捕获它并使用反向引用恢复:
weirdString.replace(/^([^\S\r\n]*(?:\r\n?|\n))|(?:\r\n?|\n)/g, "$1"));
这里不需要使用m
修饰符。
详细信息:
^
- 字符串的开始([^\S\r\n]*(?:\r\n?|\n))
- 捕获第 1 组:[^\S\r\n]*
- 除了 CR 和 LF 之外的任何 0+ 空格(?:\r\n?|\n)
- 任何风格的换行符
|
- 或(?:\r\n?|\n)
- 任何样式的换行符。
对于 $1
,只有捕获到第 1 组的内容会放回替换结果中。
var weirdString = " \r\n\r\n\n\rSome text";
console.log(weirdString.replace(/^([^\S\r\n]*(?:\r\n?|\n))|(?:\r\n?|\n)/g, "$1"));
关于javascript - 编译 HTML 后替换回车符 (?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42109020/