我正在尝试创建一个优雅的正则表达式来替换以下字符串:
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/