为了账号安全,请及时绑定邮箱和手机立即绑定

从 textarea 中删除换行符和分段符

从 textarea 中删除换行符和分段符

qq_花开花谢_0 2021-11-12 15:40:12
我试图从 textarea 的任何给定输入中“展平”(删除换行符和分段符)。假设输入是:select * where {     ?s ?p ?o .} limit 100 预期的结果是:select * where { ?s ?p ?o . } limit 100 到目前为止,我已经设法使用以下代码删除了换行符:val.replace(/$(\r|\n)(?=.)/gm, ' ');目前给我的是:select * where {    ?s ?p ?o . } limit 100有什么想法吗?提前致谢!
查看完整描述

3 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

关于 CRLF:
- 正如@Unimportant 建议的那样,替换\s+为空格。
原因是格式化结果无论如何都不起作用。
最好与甚至看起来分离保持一致。

关于段落中断和中断:
- 将被替换</?p\s*>|<br\s*/>为空。

因此,2 个独立的 regex 相互独立运行就可以完成这项工作。


查看完整回答
反对 回复 2021-11-12
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

将空格字符添加\s到您的匹配条件中,并添加一个*以表示可以有多个并发匹配。从这里开始,您只需要将这些字符替换为空字符串而不是空格。


这可以在以下内容中看到:


const val = `select * where { 

    ?s ?p ?o .

} limit 100 `;


console.log(val.replace(/$(\r|\n|\s)*(?=.)/gm, ''));


查看完整回答
反对 回复 2021-11-12
?
桃花长相依

TA贡献1860条经验 获得超8个赞

我建议

val = val.replace(/[^\S\r\n]*[\r\n]+\s*/g, ' ')

这会将带有相邻空格的换行符(包括任何连续的空白行)“缩小”为单个空格字符。

这里,

  • [^\S\r\n]* - 匹配 0+ 个水平空格

  • [\r\n]+ - 1+ CR 或 LF 字符

  • \s* - 任何 0+ 个 whitespce 字符。

请参阅正则表达式演示


查看完整回答
反对 回复 2021-11-12
  • 3 回答
  • 0 关注
  • 346 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号