最近我發佈了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