最近我发布了a question关于通过正则表达式在JS中进行时间格式转换。Javascript正则表达式执行不起作用
现在我修改了一下代码。
function getHours(value) {
if (value == 0)
return 0;
var re = new RegExp("^(?=\d)((\d+)(h|:))?\s*((\d+)m?)?$", "g");
var myArray = re.exec(value);
var hours = 0;
var minutes = 0;
if (myArray != null) {
if (myArray[2] != null) {
hours = myArray[2];
}
if (myArray[5] != null) {
minutes = myArray[5];
}
}
return Number(hours) + Number(minutes)/60;
}
的问题是,它返回一个myArray
值null
。
由于我是JS的新手,我无法解决这个问题。我究竟做错了什么?
发布value'变量的'价值也 – Ejaz 2013-04-26 10:22:37
它可以'{ “11h20m”, “11H”, “20”, “20米” 之一, “11:20” }' – StNickolas 2013-04-26 10:25:24
'(?= \ d)'应该做些什么?有'x(?= y)'这意味着'只有当x后面跟着y才匹配x,但是你错过了前面的值。 – zeroflagL 2013-04-26 10:29:21