我有一個方法使用.Net中的正則表達式來轉換時間從例如。 「1小時20分鐘」的格式翻倍。就這個。Javascript時間轉換正則表達式
public static double? GetTaskHours(this string tmpHours) {
Double taskHours = 0;
if (!string.IsNullOrEmpty(tmpHours) && !double.TryParse(tmpHours, out taskHours)) {
var match = Regex.Match(tmpHours, @"^(?=\d)((?<hours>\d+)(h|:))?\s*((?<minutes>\d+)m?)?$", RegexOptions.ExplicitCapture);
if (match.Success) {
int hours;
int.TryParse(match.Groups["hours"].Value, out hours);
int minutes;
int.TryParse(match.Groups["minutes"].Value, out minutes);
taskHours = (double)hours + (double)minutes/60;
}
}
return Math.Round(taskHours, 3);
}
現在我需要相同的使用Javascript。我試圖根據http://www.w3schools.com/jsref/jsref_regexp_nfollow.asp轉換正則表達式,但所有嘗試失敗。正則表達式中我很窮。
這是我的JS嘗試。
function getHours(value) {
var myArray = value.match(/^(?=\d)((\d+)(h|:))?\s*((\d+)m?)?$/g);
var hours = myArray[2];
var minutes = myArray[5];
return Number(hours) + Number(minutes)/60;
}
它正確嗎?
你能告訴我方式嗎?
問候,德米特里。
是,I've發現這個對你發佈之前) – StNickolas 2013-04-26 08:12:05