我有一个string="2 HOUR PARKING 7AM-6PM"
,我编写了以下正则表达式:
var string = "2 HOUR PARKING 7AM-6PM"
var reg =new RegExp(/([0-9])AM\-([0-9])PM/ig);
string = string.replace(reg,"$1-$2")
这是2 HOUR PARKING 7-6
,的结果,但是我想要一个类似2 HOUR PARKING 7-18
的结果,因为下午6点意味着18:00。在替换时,我如何动态地将一个数字添加到$2中?我甚至试过这个:
string = string.replace(eg,"$1-$2\+12")
但是,替换函数将其视为字符串,结果是2 HOUR PARKING 7-6\+12
如果有人能帮我那就太好了。谢谢
发布于 2017-07-20 15:43:49
您可以使用replace
参数来计算时间的24小时值。
function convertTime(time, ampm) {
time = parseInt(time);
if (ampm.toUpperCase() === "PM")
time += 12;
return time;
}
var str = "2 HOUR PARKING 7AM-9PM";
var reg = new RegExp(/([0-9]+)(AM|PM)-([0-9]+)(AM|PM)$/i);
str = str.replace(reg, function(match, from, fromP, to, toP) {
return convertTime(from, fromP) + "-" + convertTime(to, toP);
});
console.log(str);
https://stackoverflow.com/questions/45218678
复制相似问题