我试图从 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 相互独立运行就可以完成这项工作。

慕哥9229398
TA贡献1877条经验 获得超6个赞
将空格字符添加\s到您的匹配条件中,并添加一个*以表示可以有多个并发匹配。从这里开始,您只需要将这些字符替换为空字符串而不是空格。
这可以在以下内容中看到:
const val = `select * where {
?s ?p ?o .
} limit 100 `;
console.log(val.replace(/$(\r|\n|\s)*(?=.)/gm, ''));
添加回答
举报
0/150
提交
取消