You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用更优雅的正则表达式实现字符串中AM/PM的全局拆分与格式化?

更高效的AM/PM字符串拆分实现

需求与现有实现

需要将字符串内所有单词中的AM、PM拆分并添加逗号,同时把原逗号分隔转为换行,输出指定格式。现有实现代码如下:

let str = "MondayAM,MondayPM,TuesdayAM,WednesdayAM,ThursdayAM,ThursdayPM";
str = str.replace(/,/g,'\n').replace(/AM/g,", AM").replace(/PM/g,", PM")
console.log(str);
document.write("<pre>"+str+"</pre>")

优化后的实现方案

可以通过单次正则匹配替换完成所有操作,代码更简洁高效:

const str = "MondayAM,MondayPM,TuesdayAM,WednesdayAM,ThursdayAM,ThursdayPM";
const formattedStr = str.replace(/([A-Za-z]+)(AM|PM),?/g, "$1, $2\n").trim();

console.log(formattedStr);
document.write(`<pre>${formattedStr}</pre>`);

优化点说明

  • 减少字符串操作次数:原代码执行3次replace,优化后仅1次,性能更优
  • 正则逻辑精准:([A-Za-z]+)捕获日期单词,(AM|PM)匹配时段,,?处理末尾可选的逗号,避免多余换行
  • 输出格式更整洁:通过trim()移除最后一行的多余换行符,完全符合目标格式要求

内容的提问来源于stack exchange,提问作者David Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 14:33:20