javascript中当前年份(例如)19和未来年份格式MMYY的正则表达式正则表达式正则表达式
我需要一个正则表达式用于信用卡形式 规则很简单,格式必须是javascript中当前年份(例如)19和未来年份格式MMYY的正则表达式正则表达式正则表达式,javascript,regex,validation,Javascript,Regex,Validation,我需要一个正则表达式用于信用卡形式 规则很简单,格式必须是MMYY 我可以用这个正则表达式实现这一点 /^(0[1-9]|1[0-2])\d{2}$/ 现在我正在研究应用验证,以使本年度的YY19 在未来的几年里 也许很难使其动态,但我可以替换19中的字符串 今年的javascript版本,所以现在我只想把它修改为19岁及以上 有效MMYY的示例: 0126 1220 0119 有效MMYY中的示例 0101 1111 1218 这是我现在的参考资料 给定一年以及未来几年应该过去的年份,动态构
MMYY
我可以用这个正则表达式实现这一点
/^(0[1-9]|1[0-2])\d{2}$/
现在我正在研究应用验证,以使本年度的YY19
在未来的几年里
也许很难使其动态,但我可以替换19中的字符串
今年的javascript版本,所以现在我只想把它修改为19岁及以上
有效MMYY的示例:
0126
1220
0119
有效MMYY中的示例
0101
1111
1218
这是我现在的参考资料
给定一年以及未来几年应该过去的年份,动态构造这样一个正则表达式有点乏味。考虑使用捕获组代替,然后只检查捕获的yy是否大于或等于极限:
const yearLimit = 19; // or pass this as an argument if you want
const re = /^(?:0[1-9]|1[0-2])(\d{2})$/;
const match = str.match(re);
if (!match) {
return false;
}
const year = Number(match[1]);
return year >= yearLimit;
const validate=(str)=>{
const yearLimit=19;//如果需要,也可以将其作为参数传递
常数re=/^(?:0[1-9]| 1[0-2])(\d{2})$/;
常量匹配=str.match(re);
如果(!匹配){
返回false;
}
施工年份=编号(匹配[1]);
返回年份>=年限;
};
console.log(
验证('1234'),
验证('1212')
);代码>如果您只想用正则表达式求解,下面的代码将起作用
const currentYear=19;
const currentDecade=当前年份/10;
const unitPlaceCurrentYear=currentYear%10;
regex_string=`^(0[1-9]| 1[0-2])(1[${unitPlaceCurrentYear}-9]|[${currentDeced+1}-9][0-9])$`
var re=新的RegExp(regex_字符串);
输入=['0126'、'1220'、'0119'、'0101'、'1111'、'1218'];
inputs.map((str)=>{
让match=str.match(re);
if(match)console.log('matched:'+str);
else console.log('不匹配:'+str);
});代码>以下是您答案的动态解决方案
var-date=新日期()
var a=date.getFullYear().toString().substr(2,2).split(“”)
var monthRegex=“(0[1-9]| 1[0-2])”
var yearRegex1=“([“+a[0]+”-9][“+a[1]+”-9])”
var yearRegex2=“([”+(parseInt(a[0],10)+1)+”-9][0-9])”
var regex2=new RegExp(“^”+monthreex+yearRegex1+“|”+yearRegex2+“$”);
console.log(regex2.test('1218'))
console.log(regex2.test('1219'))
console.log(regex2.test('1239'))
我相信它在0101上失败检查您的reg表达式,我在这里测试了模式匹配后的年份测试,在提取的捕获组的测试中。如果将0101
放入代码段,verify
将根据需要返回false
。我喜欢你的风格,这里还有另一个测试,你可以通过解释正则表达式来改进答案,因为这是这个问题的起点。。。。