十進制格式的用戶輸入時間。如何使用javascript驗證以十進制表示的時間?
像
- 0.00
//Incorrect
- 1.54
//Correct value
- 1.60
//Incorrect value
- 1.59
//correct value
我試圖做一個正則表達式的功能,但它顯示不正確的所有值爲
var regex = /^[0-9]\d*(((,?:[1-5]\d{3}){1})?(\.?:[0-9]\d{0,2})?)$/;
if (args.Value != null || args.Value != "") {
if (regex.test(args.Value)) {
//Input is valid, check the number of decimal places
var twoDecimalPlaces = /\.\?:[1-5]\d{2}$/g;
var oneDecimalPlace = /\.\?:[0-9]\d{1}$/g;
var noDecimalPlacesWithDecimal = /\.\d{0}$/g;
if (args.Value.match(twoDecimalPlaces)) {
//all good, return as is
args.IsValid = true;
return;
}
if (args.Value.match(noDecimalPlacesWithDecimal)) {
//add two decimal places
args.Value = args.Value + '00';
args.IsValid = true;
return;
}
if (args.Value.match(oneDecimalPlace)) {
//ad one decimal place
args.Value = args.Value + '0';
args.IsValid = true;
return;
}
//else there is no decimal places and no decimal
args.Value = args.Value + ".00";
args.IsValid = true;
return;
} else
args.IsValid = false;
} else
args.IsValid = false;
你的正則表達式是複雜得多,你的測試用例會說明什麼?爲什麼一個正則表達式呢?在'.'上分割,檢查邊界,parseInt()並檢查數字範圍,如果需要的話,轉換爲字符串加'0'。 – 2014-09-23 15:21:42
24小時格式或12小時? – 2014-09-23 15:22:35