【发布时间】:2017-01-04 06:22:37
【问题描述】:
我在下面有这个正则表达式代码来验证有效日期。
function isValidDate(div) {
var reg = /^((0?\d)|(1[012]))\/([012]?\d|30|31)\/\d{1,4}$/;
var regs = /^\/\d{1,4}$/;
var dateField = $(div).val();
if (dateField == "") {
//alert('Invalid inclusive dates.');
return false;
} else {
if (reg.test(dateField) == false && regs.test(dateField) == false) {
// alert('Invalid inclusive dates.');
return false;
} else {
return true;
}
}
}
我正在测试这段代码,你可以看到我在if (reg.test(dateField) == false && regs.test(dateField) == false) { 中有 2 个条件。在这一行中,我正在测试日期是完整日期(2017 年 1 月 1 日)还是(2017 年)。如果我输入这两个不同的日期,它会因为条件返回 false。如何做到这一点?
【问题讨论】:
-
我不确定你到底在问什么。请澄清
-
如果您只是想要一个正则表达式来测试“1/1/2017”或“2017”的模式,它们可能比您拥有的要简单得多,例如
/$\d{1,2}\/\d{1,2}\/\d{4}$/和/^\d{4}$/.如果您还想验证这些值,那就另当别论了(不应该使用正则表达式)。 -
@Rajesh 如果用户输入 2017 年 1 月 1 日或 2017 年,它将返回为真。否则返回 false。
-
regs 似乎正在测试“/2017”。
-
@RobG 是的。但我在
else条件下遇到问题
标签: javascript regex date