PHP如何校验字符串以KM开头且后续为5位纯数字
PHP实现KM+5位数字格式校验
方案1:正则表达式一次性校验(推荐)
直接通过正则匹配所有规则,覆盖「KM开头、后续5位纯数字、总长度7位」所有要求,代码更精简:
// 校验规则:严格匹配KM开头+5位数字的格式 if (!preg_match('/^KM\d{5}$/', $fm_id)) { die("<script>alert('ID is in the wrong format.'); window.history.back();</script>"); }
正则规则说明:
^标记字符串起始位置,避免KM前出现其他字符KM精准匹配开头的固定字符\d匹配0-9的阿拉伯数字{5}限定前面的数字必须恰好出现5次$标记字符串结束位置,避免5位数字后还有多余字符
方案2:在原有逻辑基础上补充校验
如果你想保留现有判断开头的逻辑,单独补充后续内容的校验,可以按以下步骤实现:
// 原有开头校验逻辑 if (substr($fm_id, 0, 2) !== "KM") { die("<script>alert('ID is in the wrong format.'); window.history.back();</script>"); } // 补充校验:总长度必须是7位(2位KM+5位数字) if (strlen($fm_id) !== 7) { die("<script>alert('ID is in the wrong format.'); window.history.back();</script>"); } // 补充校验:KM后的5位必须是纯数字 $num_part = substr($fm_id, 2); if (!ctype_digit($num_part)) { die("<script>alert('ID is in the wrong format.'); window.history.back();</script>"); }
注意:如果输入内容可能带前后空格,建议在校验前先执行
$fm_id = trim($fm_id);处理,避免空格导致校验失败。
内容的提问来源于stack exchange,提问作者underrated
相关产品推荐
相关产品推荐

