如果您将 10 和 20 作为天数,JS
日期验证文件将失败。
代码如下:dd/mm/aaaa
function validaEdat(){
vesSumant();
vfalladata = false;
//Comprovació de la data de naixement i el correu electrònic
var vregexNaix = /^([012][1-9]|3[01])(\/)(0[1-9]|1[012])\2(\d{4})$/;
vdataNaix = document.formu.dataNaix.value;
vanyData = vdataNaix.substring(vdataNaix.length-4, 4);
if((!vregexNaix.test(vdataNaix)) || (/^(\d{4})$/.test(vanyData))){
alert("Bonvolu skribi naskighdato per tt/mm/jjjj. \n--------------------------------------\n Per favor, empleneu la data com dd/mm/aaaa.");
document.formu.dataNaix.value = "";
document.formu.dataNaix.focus();
return false;
}
controlaCaselles();
return true;
}
验证日期
使用正则表达式验证日期虽然可能,但不切实际,我推荐它的情况很少。对我来说,限制是:你了解正则表达式的每个部分吗?几年后你会很容易理解吗?如果其他开发人员必须编辑您的代码,他们能否轻松理解它?
验证日期有许多更简单的替代方法:
HTML5 合并了一种新类型
<input>
,输入类型日期(参见兼容性!)。使用Moment.js,它为 Date 生成一个包装器(或者甚至可以包装在 Date 中)。
转换为 Date 并查看它是否保持相同的值。
使用正则表达式验证它们是否为数字,然后手动验证每个值。
使用jQuery和jQuery UI,使用 Datepicker小部件。小部件可以显示,也可以不显示。您只需调用
$.datepicker.parseDate()
. 在示例中,可以在输入或日期选择器中输入日期。但是,可以禁用输入,以便不手动输入。如果没有,另一种选择是不使用输入,并在 div 中不断显示日期选择器。使用bootstrap-datepicker(类似于上面)。
正则表达式验证任何日期 m/d/yyyyregex101.com
验证任何日期,包括闰年的二月天。
验证和提取日、月和年的代码(详细说明变量)
在前面的表达式中,我们使用括号(组)来获得每个部分:
问题出在 中
RegExp
vregexNaix
,它既不接受也不10
接受20
一个解决方案是修改 said
RegExp
,例如:示范:
我认为在没有太多代码的情况下验证日期的最简单方法是:
添加 (
-
) 以验证"01-03-1993"
.