我使用正则表达式([1-9]|1[0-2]|0[1-9]):([0-5][0-9]) (AM|PM|am|pm)
作为时间因素。例如HH:MM pm。
现在我必须使用这个正则表达式。
示例代码:
if(currentVal.match(/([1-9]|1[0-2]|0[1-9]):([0-5][0-9]) (AM|PM|am|pm)/g) != currentVal) {
alert("Invalid time.");
}
var parts = currentVal.split(" ");
var parts = currentVal.split(":");
parts[0] = parseInt(parts[0]);
parts[1] = parseInt(parts[1]);
if(parts[0] == 12) {
parts[0] = 0;
}
if(parts[1].toLowerCase() == 'pm') {
parts[0] += 12;
}
在这里,我的错误是parseInt(parts[1])
;因为正则表达式具有“:”和“space”以及“(AM | PM | am | pm)”所以它不会以小写形式转换parts[1]
。
有人可以帮我使用这个正则表达式吗?
答案 0 :(得分:1)
除了滥用其他人指出的语言,而不是这个...
var parts = currentVal.split(" ");
var parts = currentVal.split(":");
...使用另一个正则表达式来分隔空格和冒号:
var parts = currentVal.split(/[ :]/);
然后,'pm'
当然会存储在parts[2]
。