zid*_*dar 1 javascript asp.net validation date
我需要对日期字段进行用户验证,它应该采用yyyyMMdd格式,并且将来不应超过一年.我该怎么做呢?目前我只有一个粗糙的正则表达式,这是不够的.
function VerifyDate(source, args)
{
var regexp = /^([1-2]{1}[0-9]{1})\d{2}([0][1-9]|[1][0-2])([0][1-9]|[1-2][0-9]|[3][0-1])$/
var result = args.Value.match(regexp);
if(result) {
args.IsValid = true;
} else {
args.IsValid = false;
}
}
Run Code Online (Sandbox Code Playgroud)
拿正则表达式只检查格式.你可以保持简单:
^(\d{4})(\d{2})(\d{2})$
Run Code Online (Sandbox Code Playgroud)
然后解析日期并检查范围:
function VerifyDate(source, args)
{
args.IsValid = false;
var regexp = /^(\d{4})(\d{2})(\d{2})$/;
var daysInMonth = function (y, m) {return 32-new Date(y, m, 32).getDate(); };
var ma = regexp.exec(args.Value);
if (ma && ma.length == 4 && ma[2] < 12 && ma[3] <= daysInMonth(ma[1], ma[2]))
{
var diff = new Date(ma[1], ma[2], ma[3]) - new Date();
args.IsValid = diff < 31536000000; // one year = 1000ms*60*60*24*365
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1742 次 |
| 最近记录: |