当我们开发一个需要输入时间的功能时,往往需要对用户输入的时间进行校验,以确保输入的数据符合我们的要求,这时候正则表达式便成了一个方便且高效的工具,下面就来分享一下如何使用正则表达式来校验时间格式。
1. 时间格式校验的基本原则
根据ISO8601标准,时间格式应遵从如下形式:YYYY/MM/DD HH:mm:ss
其中,YYYY
代表年份,MM
代表月份,DD
代表日期,HH
代表小时,mm
代表分钟,ss
代表秒钟,可以根据需要省略某些字段。
因此,我们的正则表达式要能够支持这种标准格式,也要支持各种简略写法。
2. jQuery中校验时间格式的正则表达式
以下是一个完整的时间格式校验的正则表达式:
var regExp = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}[\s]*\d{1,2}\:\d{1,2}:\d{1,2}$/;
具体分析一下这个正则表达式:
-
^
:表示匹配输入字符串的开始位置。 -
\d{4}
:表示匹配年份,有4位数字。 -
(\-|\/|\.)
:表示匹配日期分隔符,可以是“-”“/”或“.”。 -
\d{1,2}
:表示匹配月份和日期,可以是1~2位数字。 -
\1
:引用第2个子表达式中匹配到的日期分隔符。 -
[\s]*
:表示匹配0个或多个空格。 -
\d{1,2}
:表示匹配小时和分钟,可以是1~2位数字。 -
:
:表示匹配时间分隔符“:”。 -
\d{1,2}
:表示匹配秒钟,可以是1~2位数字。 -
$
:表示匹配输入字符串的结尾位置。
3. 示例
示例一:校验YYYY/MM/DD形式的日期
var date = "2021/07/23";
var regExp = /^\d{4}\/(?:0?[1-9]|1[0-2])\/(?:0?[1-9]|[12][0-9]|3[01])$/;
if(regExp.test(date)){
console.log("日期格式正确");
} else {
console.log("日期格式错误");
}
解析一下这个正则表达式:
-
/^\d{4}\/
: 表示年份(4个数字),并且以“/”结尾。 -
(?:0?[1-9]|1[0-2])\/
: 表示月份(1~2个数字,如果只有一个数字可以省略前导零),并且以“/”结尾。 -
(?:0?[1-9]|[12][0-9]|3[01])$/
: 表示日期(1~2个数字,如果只有一个数字可以省略前导零),并以字符串结尾。
示例二:校验HH:mm:ss形式的时间
var time = "12:25:30";
var regExp = /^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/;
if(regExp.test(time)){
console.log("时间格式正确");
} else {
console.log("时间格式错误");
}
解析一下这个正则表达式:
-
/^(?:[01]\d|2[0-3]):
: 表示小时(00~23),并以“:”结尾。 -
[0-5]\d:
: 表示分钟(00~59),并以“:”结尾。 -
[0-5]\d$/
: 表示秒钟(00~59),并以字符串结尾。
以上就是使用正则表达式校验时间格式的完整攻略,可以根据自己的需求进行相应地修改。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery中校验时间格式的正则表达式小结 - Python技术站