You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP验证两位月份与当前及未来四位年份的有效性

PHP 两位月份/四位年份校验方案

一、月份正则优化

你当前的正则只限制了首位为0或1,没有约束第二位的合法范围,直接调整为如下规则即可覆盖01-12的所有合法两位月份:
/^(0[1-9]|1[0-2])$/
规则说明:

  • 0开头的场景下,第二位匹配1-9,覆盖01到09的合法月份
  • 1开头的场景下,第二位匹配0-2,仅允许10、11、12三个合法月份
  • 首尾加$确保整个输入只有两位字符,避免多字符匹配绕过校验

PHP使用示例:

$month = '12';
if (preg_match('/^(0[1-9]|1[0-2])$/', $month)) {
    // 月份校验通过
}

二、年份校验实现

不推荐完全用正则实现动态年份范围校验,当前年份是动态值,写死正则每年都需要修改,维护成本极高。最优方案是先用正则校验格式为20xx四位数字,再用逻辑判断是否符合当前及未来年份的要求:
格式校验正则保留为:/^20\d{2}$/
结合逻辑判断的PHP示例:

$inputYear = '2024';
$currentYear = date('Y');
if (preg_match('/^20\d{2}$/', $inputYear) && $inputYear >= $currentYear) {
    // 年份格式正确且为当前及未来年份,校验通过
}

如果有强制用正则实现的特殊需求,可根据当前年份动态生成正则,比如2024年对应的正则为/^20(2[4-9]|[3-9]\d)$/,该规则仅在2020-2029区间内有效,到期需要手动更新。

内容的提问来源于stack exchange,提问作者germanshedder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:06:01