js正则表达式检查时间的合法性

有个WEB应用程序,需要在一个datagrid里面输入时间。决定在提交前检测时间合法性。

思路:
1、设置一个可使用自定义的javascript函数的数据检查控件CustomValidator指向时间输入文本框txtTime;
2、编写一个检测时间的javascript函数CheckTime;
3、将CustomValidator的属性ClientValidatorFunction设为CheckTime。

时间的格式形如:hh:mm。除了分隔符“:”外,只能是数字。并且小时不能>23,分钟不能>59。
构造正则表达式如下:
 

复制代码 代码示例:
var pattern = /(/d|([0-1]/d)|(2[0-3])):(/d|([0-5]/d))/;


其中,“/d”代表0~9的任意一位数字;“|”表示“或”的关系;“()”就跟平常用的括号没什么两样。用意很明显。

测试时发现,象9:89,67:5a,b01:00这样的串放上去都显示合法。
原来是没有标明串的开头和结尾,比如9:89,其中9:8确实是符合表达式的,并没有错。
加上开头标志符“^”和结尾标志符“$”就搞定了。修正后的正则表达式
 

复制代码 代码示例:
var pattern = /^(/d|([0-1]/d)|(2[0-3])):(/d|([0-5]/d))$/;

附,完整的检测时间的js函数。
 

复制代码 代码示例:
<script>
//检测时间的合法性
//www.jbxue.com
function CheckTime(source,args)
{
  var time = args.Value;
  var pattern = /^(/d|([0-1]/d)|(2[0-3])):(/d|([0-5]/d))$/;
  if( time != "" && !pattern.test(time) )
  {
     args.IsValid = false;
     return;
  }
    args.IsValid = true;
 }
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值