时间的正则表达式(⽐较简单)
正则1种: ([0-1]?[0-9]|2[0-9]):([0-5][0-9]):([0-5][0-9]) 可以匹配 23:59:59, 可是当数据为34:59:59 却也⼀样的能通过。(不够完善)
正则2种:测试暂是通过能⽐较完美的匹配时间的正则:([0-1][0-9]|2[0-3]|^[0-9]):([0-5]?[0-9]):([0-5]?[0-9]) 当情况为3:4:7这样的时间格式也能通过,且分别得到时分秒
下⾯为 2种做下解释:
([0-1][0-9]|2[0-3]|^[0-9]):([0-5]?[0-9]):([0-5]?[0-9]) 为什么能匹配3:4:7 是因为([0-5]?[0-9])之间的?
正则匹配0到15当?字符紧跟在任何⼀个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后⾯时,匹配模式是⾮贪婪的。⾮贪婪模式尽可能少的匹配所搜索的字符串,⽽默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",⽽ 'o+' 将匹配所有 'o'。现在?跟在[0-5] ,所以是⾮贪婪的那么他可以匹配0 也可以不匹配0.这个就根据⾃⼰的需求。所以你只要把?去掉分秒就必须匹配09不会出现匹配9这种情况了. /^([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/ 前⾯这个[0-1][0-9]|2[0-3] 是⽤来匹配01-09 11-19 20-23的字符串。
JS 代码实现: 1.//⽇期格式为:YYYY|MM|DD|hh|ss. 例如:2010|04|09|12|25 {0:yyyy-MM-dd HH:ss}
2. var pattern = /^(?:20\d{2})\|(?:0[1-9]|1[0-2])\|(?:0[1-9]|[12][0-9]|3[01])\|(?:0[0-9]|1[0-9]|2[0-3])\|(?:[0-5]\d)$/;
分钟转换⼩时:例如 new TimeSpan(0,Convert.ToInt32(Eval("数据源(分钟数)")),0).TotalHours.ToString("F2")
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论