javascript - 用于替换两个选项之间字符的正则表达式

标签 javascript regex

我正在尝试创建一个优雅的正则表达式来替换以下字符串:

12:00:00米 对此: 12:00 AM

或者也替换: 12:00:23 a.m.12:00 am

我的意思是,我想删除最后一个::00 并替换 a。 m. 作者:AM

这是我的想法(但缺少):

"12:00:00 a. m.".replace(/(:*)?(.*\s)/, "");

非常感谢您的帮助:)

最佳答案

您可以将此正则表达式与两个捕获组一起使用,以在单个 replace 中完成:

/:\d\d\s*(\w)\.?\s*(\w)\.?/

const func = str => str.replace(/:\d\d\s*(\w)\.?\s*(\w)\.?/, (a, b, c) => {
  return ` ${b}${c}`.toUpperCase();
});

console.log(func('12:12:34 a. m.'));
console.log(func('12:34:56 a.m.'));
console.log(func('12:12:34 pm'));
console.log(func('12:34:56pm'));
console.log(func('12:34:56p.   m'));

关于javascript - 用于替换两个选项之间字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55172805/

相关文章:

Java正则表达式检测SimpleDateFormat模式中的时区

javascript - AngularJS 动态注入(inject)范围或 Controller

javascript - flot legend,如何隐藏并使用彩色瓷砖

javascript - 将 @click 事件绑定(bind)到数组中的 href

javascript - 私有(private)文件夹中的重复文件

regex - Idris 支持正则表达式吗?

C# 正则表达式 : Capture everything up to

javascript - 在 JavaScript 排序期间加载动画

c# - 如何使用正则表达式处理长电子邮件地址?

javascript - REGEX - 在 html 注释模式之间插入内容