您的位置:首页 > Web前端 > JavaScript

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

2013-05-15 06:47 351 查看
有个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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: