我有 2 个地方需要在 javascript 1 中进行正则表达式来验证MM/YYYY
我所拥有的:
var regEx = new RegExp(/^(0?[1-9]|1[0-2])\/(\d{4})$/);
另一个是验证YYYY
我还需要验证年份在 1900 年和当前年份之间
我有 2 个地方需要在 javascript 1 中进行正则表达式来验证MM/YYYY
我所拥有的:
var regEx = new RegExp(/^(0?[1-9]|1[0-2])\/(\d{4})$/);
另一个是验证YYYY
我还需要验证年份在 1900 年和当前年份之间
为 mm 做一个正则表达式应该是这样的
/0([1-9])|1([1-2])/
对于 yyyy 它应该是
/(19\d{2})|(200\d)|(201[0-3])/
您可以制作一个正则表达式来检查 mm/yyyy 之类的
/0([1-9])|1([1-2])\/(19\d{2})|(200\d)|(201[0-3])/
然后使用循环来验证您要检查的年份和月份
这将适用于下一个千年:
var y = (new Date().getYear()-100).toString(); // "13"
var strReg = '^((0?[1-9]|1[0-2])\\/)?(19\\d{2}|2' + (y.length-2?'':'0');
for(var i=0;i<y.length;i++) {
strReg+='[0-'+y[i]+']';
}
strReg+=')$'; // "^((0?[1-9]|1[0-2])\/)?(19\d{2}|20[0-1][0-3])$"
console.log(new RegExp(strReg).test('2013')); // true
console.log(new RegExp(strReg).test('2016')); // false
console.log(new RegExp(strReg).test('01/2013')); // true
console.log(new RegExp(strReg).test('13/2013')); // false
如果您想使用本世纪和上世纪的有效日期(相对于 1900 年代至今),您可以用此代码替换正则表达式中的 19...'...?(' + (y.length-2?parseInt(y[0])+19:'19') + '\\d{2}|...'