我目前正致力于验证表单。到目前为止,我遇到了障碍。也许你们中的一些疯狂的RegEx家伙可以对这个问题有所了解。我google'd直到我患上关节炎。
目前,我使用以下RegEx:
var dateReg = /^(0[1-9]|1[012])[- //.](0[1-9]|[12][0-9]|3[01])[- //.](19|20)\d\d$/;
这以mm / dd / yyyy格式验证,但仅对31天以下的任何内容进行验证。是否可以按月进行日期验证?是否建议使用另一条路线?
答案 0 :(得分:1)
正如@Wooble解释的那样,正则表达式无法满足您的需求。那怎么样:
if(typeof String.prototype.isValidDate === "undefined") {
String.prototype.isValidDate = function() {
var data = this.split(/[ -./]/);
var day = parseInt(data[1]);
var month = parseInt(data[0]) - 1;
var year = parseInt(data[2]);
var date = new Date(year, month, day);
return date.getDate() === day
&& date.getMonth() === month
&& date.getFullYear() === year;
}
}
document.write("11 02 2011".isValidDate());
document.write("<br />");
document.write("11 32 2011".isValidDate());
打印:
true
false
可以使用演示here。