Javascript Regex将十进制字段验证为小时和分钟格式
我需要将企业应用程序上的十进制字段验证为小时和分钟格式 例如,7.30是7小时30分钟 9点55分是9小时55分 10.80……这一点不应被接受 23.59是最大值 我尝试了示例代码Javascript Regex将十进制字段验证为小时和分钟格式,javascript,regex,Javascript,Regex,我需要将企业应用程序上的十进制字段验证为小时和分钟格式 例如,7.30是7小时30分钟 9点55分是9小时55分 10.80……这一点不应被接受 23.59是最大值 我尝试了示例代码 函数ValidateTotalHours(){ var totalhours=Xrm.Page.getAttribute(“new_totalhours”).getValue(); 如果(!/^([0-23])([0-5][0-9])$/。测试(总小时)){ Xrm.Utility.alertDialog(“总小
函数ValidateTotalHours(){
var totalhours=Xrm.Page.getAttribute(“new_totalhours”).getValue();
如果(!/^([0-23])([0-5][0-9])$/。测试(总小时)){
Xrm.Utility.alertDialog(“总小时数格式无效”);
}
}
正则表达式中的[0-23]
:
/^([0-23]).([0-5][0-9])$/
实际上是指定:
[0123]
你想要这样的东西:
/^(2[0-3]|[01]?[0-9])\.[0-5][0-9]$/
您的模式不正确:
等于[0-23]
[0123]
需要转义<代码>\.否则它将匹配除换行符以外的任何字符
^([0-1]?[0-9]| 2[0-3])\([0-5][0-9])$
const模式=/^([0-1]?[0-9]| 2[0-3])\([0-5][0-9])$/;
常数时间=['24.00','23.60','22.59','04.05','4.05','23.02','15.25','24.59'];
times.forEach(时间=>{
log(`${time}:${pattern.test(time)}`);
});代码>非常感谢,不适用于正则表达式…但是否可以在上午8:20指定类似字符串的格式??所以正则表达式可能是上午8点20分或下午8点20分。。我试过这个^([0-1]?[0-1]| 1[0-1]):([0-5][0-9])([AM]|[PM])$否则答案是正确的方括号[]
没有做你认为他们做的事。如果你想要一个可选的AM/PM,你可以做一些类似([AP]M)?
谢谢Yimin,我确实需要看看Regex,但我更像是一个Dynamics CRM开发人员,我如何才能获得字符串字段的完整Regex验证。上午8:30.所以上午8:30或下午8:30所以第一个字母应该是1-11代表时间,然后是:下一个是1-59分钟它是01-59因为它必须有两个数字,而不是一个,然后在你有上午或下午之后有一个空格我知道这是错误的^([0-1]?[0-1]| 1[0-1]):([0-5][0-9])([AM]|[PM])$。当做