javascript - 替换字符串中的前 N ​​次出现

标签 javascript node.js regex replace

如何替换以下字符串中出现的前 N 个空格和制表符:

07/12/2017  11:01 AM             21523 filename with s p a c  e  s.js

我期待以下结果:

07/12/2017|11:01|AM|21523|filename with s p a c  e  s.js

我知道不是很优雅的选择,只能通过在同一个字符串上调用 replace N

.replace(/\s+/, "|").replace(/\s+/, "|").replace(/\s+/, "|");

值得一提的是,我将在近 1,000,000 行上运行此程序,因此性能很重要。

最佳答案

大概是这样的:

var txt = "07/12/2017  11:01 AM             21523 filename with s p a c  e  s.js";

var n = 0, N = 4;
newTxt = txt.replace(/\s+/g, match => n++ < N ? "|" : match);

newTxt; // "07/12/2017|11:01|AM|21523|filename with s p a c  e  s.js"

关于javascript - 替换字符串中的前 N ​​次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47230492/

相关文章:

javascript - 折线图自定义 X 值访问器

javascript - Sequelize 更新信息

javascript - 控制台 kill 命令在 Ubuntu 上不起作用

java - 正则表达式避免最多代码 255 的字符

ruby-on-rails - 如何在 ruby​​-on-rails 中为 3 位数字编写验证?

javascript - Node.js如何同步执行以下功能

javascript - 如何检测和/或阻止破坏我网站的浏览器扩展?

node.js - Mongodb 排序返回未定义

javascript - 使用 Node js 和 Express 创建 Web 代理

r - 用于删除所有包含 R 中数字的单词的正则表达式