gpt4 book ai didi

javascript - 正则表达式 javascript 中当前年份(例如)19 和 future 年份格式 MMYY 的正则表达式

转载 作者:行者123 更新时间:2023-12-02 22:50:08 25 4
gpt4 key购买 nike

我需要一个用于信用卡形式的正则表达式规则很简单,格式必须是MMYY

我可以用这个正则表达式来实现这一点。

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

现在正在研究应用验证来使今年的 YY 为 19以及 future 几年。

也许很难让它变得动态,但我可以替换字符串 19javascript 中的当前年份,所以现在我只想将其修复为 19 及以上。

有效 MMYY 示例:

0126

1220

0119

无效 MMYY 示例

0101

1111

1218

这是我现在拥有的引用 Example shared for my reg exp looks like

最佳答案

给定那一年和 future 几年应该过去的一年,动态构建这样的正则表达式会有点乏味。考虑使用捕获组,然后只检查捕获的 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; // 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;
};

console.log(
validate('1234'),
validate('1212')
);

^(?:0[1-9]|1[0-2])(\d{2})$ 表示

  • ^ - 匹配字符串开头
  • (?:0[1-9]|1[0-2]) - 匹配 01-12:任一
    • 0[1-9] - 以 0 开头,后跟数字 1 到 9,或
    • 1[0-2] - 以 1 开头,后跟数字 0 到 2
  • (\d{2}) - 匹配并捕获任意两个数字
  • $ - 匹配字符串结尾

关于javascript - 正则表达式 javascript 中当前年份(例如)19 和 future 年份格式 MMYY 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58212647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com