如何在Codeigniter表单验证中用regex_match验证多种日期格式
如何在Codeigniter中验证多种日期格式
你需要验证的日期格式包含以下四类:d/m/yyyy、dd/mm/yyyy、dd/m/yyyy、d/mm/yyyy,且年份限定为2020-2025。
你当前使用的正则规则:
/^([1-9]|1[0-9]|2[0-9]|3[0-1])\/([1-9]|1[0-2])\/202[0-5]$/
本身已经可以匹配无前置零的四类目标格式,比如3/5/2023、12/11/2024、21/3/2022、5/10/2025都可以正常命中。如果需要支持带前置零的日期(比如03/05/2023、09/3/2024这类格式),需要对正则做调整。
调整后支持带/不带前置零的正则规则:
/^(0?[1-9]|[12][0-9]|3[01])\/(0?[1-9]|1[012])\/202[0-5]$/
对应的Codeigniter表单验证代码:
$this->form_validation->set_rules('mir_date', 'MIR Date', 'required|regex_match[/^(0?[1-9]|[12][0-9]|3[01])\/(0?[1-9]|1[012])\/202[0-5]$/]', [ 'required' => 'MIR Date 为必填项', 'regex_match' => 'Invalid MIR Date' ]);
上述规则可完整覆盖所有目标日期格式:
d/m/yyyy格式,例:2/4/2023dd/mm/yyyy格式,例:12/09/2024dd/m/yyyy格式,例:21/5/2022d/mm/yyyy格式,例:3/11/2025
内容的提问来源于stack exchange,提问作者StoledInk
相关产品推荐
相关产品推荐

