我需要将企业应用程序上的小数字段验证为小时和分钟格式。
例如7.30是7小时30分钟
9.55是9小时55分钟
10.80 .....不应接受。
最高为23.59。
我尝试了示例代码。
function ValidateTotalHours() {
var totalhours = Xrm.Page.getAttribute("new_totalhours").getValue();
if (!/^([0-23]).([0-5][0-9])$/.test(totalhours)) {
Xrm.Utility.alertDialog("Total Hours Format is invalid");
}
}
在继续之前,我尝试使用https://regex101.com/进行验证,但是我的Regex表达式似乎不正确。
关于正确实施的任何想法。
答案 0 :(得分:1)
RegEx中的[0-23]
:
/^([0-23]).([0-5][0-9])$/
实际上是在指定:
[0123]
您想要这样的东西:
/^(2[0-3]|[01]?[0-9])\.[0-5][0-9]$/
答案 1 :(得分:1)
您的模式不正确:
[0-23]
等于[0123]
.
需要转义。 \.
,否则它将匹配除换行符之外的任何字符您需要的是:^([0-1]?[0-9]|2[0-3])\.([0-5][0-9])$
const pattern = /^([0-1]?[0-9]|2[0-3])\.([0-5][0-9])$/;
const times = ['24.00', '23.60', '22.59', '04.05', '4.05', '23.02', '15.25', '24.59'];
times.forEach(time => {
console.log(`${time}: ${pattern.test(time)}`);
});