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

如何编写preg_match用regex实现1-80及后接+^的输入校验

适配需求的preg_match正则表达式

你原来编写的[0-7][0-9]|80只覆盖了两位数的匹配场景,没有适配1-9的个位数情况,所以无法匹配个位数输入。

符合你需求的完整正则如下:

/^(?:[1-9]|[1-7][0-9]|80)[+^]?$/

规则拆解说明

  • ^ 和 $:锚定字符串首尾,保证输入内容整体符合规则,不会出现前后夹带多余字符的问题,适配preg_match全量校验的使用场景
  • (?:[1-9]|[1-7][0-9]|80):非捕获分组,精准匹配1-80区间内的整数:
    • [1-9] 覆盖1到9的个位数输入场景
    • [1-7][0-9] 覆盖10到79的两位数输入场景
    • 80 单独匹配上限值80
  • [+^]?:匹配可选的后缀符号,?表示后缀最多出现1次,也可以不出现,完全符合你要求的可追加+或^的规则

校验效果参考

合法输入示例:3、27、80、79+、1^、80^
非法输入示例:0、81、100、12a、5++、+23

实际使用示例

$checkPattern = '/^(?:[1-9]|[1-7][0-9]|80)[+^]?$/';
$inputContent = '61^';
if (preg_match($checkPattern, $inputContent)) {
    echo "输入符合规则";
} else {
    echo "输入不符合规则";
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:45:03