我有一个ng-style="$ctrl.getStyle()"
function getStyle() {
if (some condition) {
return {
background-color: #52b6db;
border: 1px solid #52b6db;
} else {
return {...}
}
,我写了以下正则表达式:
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
这样的结果,因为下午6点意味着18:00 。如何在替换时动态地将数字添加到$ 2?
我甚至试过这个:
2 HOUR PARKING 7-18
但是replace函数将其视为字符串,结果为string = string.replace(eg,"$1-$2\+12")
如果有人可以帮助我,那将会很棒。 感谢
答案 0 :(得分:1)
您可以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);