1

什么是用于验证日期格式(如 mm/yyyy)的正则表达式。我是正则表达式的新手

$.validator.addMethod(
"customDate",
function(value, element) {
    return value.match(?);
},
"Please enter a date in the format mm/yyyy"
);

任何人都可以在这方面帮助我吗?

4

4 回答 4

3

扩展 RobG 的功能:

function validateDate(s) {
  return /^([1-9]|1[0-2])\/[12]\d{3}$/.test(s);
}

([1-9]|1[0-2])检查它是1-9还是10- 12[12]\d{3}确保年份是12后跟三个数字(因此在这种情况下有效范围为1000- 2999;如果您需要更具体的值,请更新您的问题。

编辑 如果您想要 01-12 的月份值,请将正则表达式更改为:

/^(0[1-9]|1[0-2])\/[12]\d{3}$/

于 2012-05-25T00:54:46.213 回答
2

你对“有效”的标准是什么?是否/^\d{2}/\d{4}$/足够或您需要检查月份是否介于 1 和 12 之间?

此外,使用 test 更合适:

function validateDate(s) {
    return /^\d{2}\/\d{4}$/.test(s);
}

或更高效的版本(只创建一次正则表达式):

var validateString = (function() {
    var re = /^\d{2}\/\d{4}$/;
    return function(s) { return re.test(s);}
}());
于 2012-05-25T00:47:36.563 回答
0

给你:

/^[01]?\d\/\d{4}$/
于 2012-05-25T00:53:56.217 回答
0

试试这个正则表达式:

var regex = /^(\d{2})[\/](\d{4})$/.exec(date);

之后,您可以检查正则表达式子组是否超出范围,例如从现在起 1000 年等。

于 2012-05-25T00:43:47.237 回答