gpt4 book ai didi

javascript - 我们如何在javascript中的正则表达式中的替换函数中添加一个值

转载 作者:行者123 更新时间:2023-11-30 21:20:38 25 4
gpt4 key购买 nike

我有一个 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

如果有人能帮助我,那就太好了。谢谢

最佳答案

你可以 pass in a function to the string 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);

关于javascript - 我们如何在javascript中的正则表达式中的替换函数中添加一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45218678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com