我有一个带有 jQuery UI Datepicker 的表单,然后使用 jQuery Validation 插件对其进行验证。
日期选择器是使用以下方法创建的:
$("#dob").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "dd/mm/yy",
onSelect: function (){
this.focus();
},
});
但是,当我要求它使用 dd/mm/yyyy 进行验证时,验证插件似乎以美国格式进行验证。这意味着任何一个月的 12 日之后的任何日期都被视为无效。
我环顾四周,发现了一种添加不同方法来使用正则表达式验证日期的方法:
$.validator.addMethod(
"australianDate",
function(value, element) {
return value.match(/^(0?[1-9]|[12][0-9]|3[01])\/(0?[1-9]|1[012])\/((19|20)\\d\\d)$/);
},
"Please enter a date in the format dd/mm/yyyy."
);
然后将其添加到规则中:
dob:{
required:true,
australianDate: true
},
但这对于任何输入似乎仍然失败。
我正在使用的正则表达式是我过去在 php 中使用过的,它比通用 (any2numbers/any2numbers/any4numbers) 表达式更准确,我也希望能够在 javascript 中使用它。
javascript 正则表达式是否需要与 php 采用不同的格式?那是我要去错的地方吗..
任何帮助是极大的赞赏。