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

C#正则表达式:验证仅以指定两位数字结尾的数字输入

正确实现以指定两位数字结尾的正则验证

我看你当前的正则写法有个小问题:^[1-9][0-9][0-9][48,88,51,01]$ 里的 [48,88,51,01] 是字符集合,它只会匹配单个字符(比如4、8、,、5、1、0这些),根本达不到你想要的“匹配两位结尾组合”的效果。

根据你的需求,我分两种常见场景给你整理了正确的实现方案:

场景1:仅验证四位数字,且最后两位是48/88/51/01

如果你的文本框只允许输入四位数字,且第一位不能为0(和你原来的正则逻辑一致),那正确的正则应该是:

^[1-9]\d(48|88|51|01)$

简单解释下各个部分:

  • ^[1-9]:匹配第一位非0的数字
  • \d:匹配第二位任意数字(等价于[0-9],写法更简洁)
  • (48|88|51|01):用分组语法匹配四个两位组合中的一个,|表示“或”的关系
  • $:锚定字符串结尾,确保后面没有多余字符

场景2:验证任意长度(至少两位)的数字,只要最后两位是指定组合

如果你允许输入更长的数字(比如5位、6位等),只要最后两位符合要求,这里分两种子情况:

  • 不允许首位为0:

    ^[1-9]\d*(48|88|51|01)$
    

    其中\d*表示匹配0个或多个任意数字,这样前面可以有1位或多位非0开头的数字,最后接指定的两位结尾。

  • 允许首位为0:

    ^\d*(48|88|51|01)$
    

    这个版本会直接匹配纯两位的指定组合(比如"48"),如果需要强制数字长度大于两位,可以把\d*改成\d+,变成^\d+(48|88|51|01)$。

举个JavaScript里的验证示例,方便你参考:

const validateInput = (value) => {
  const regex = /^[1-9]\d*(48|88|51|01)$/;
  return regex.test(value);
}

// 使用示例
console.log(validateInput("1248")); // true
console.log(validateInput("0051")); // false(首位为0不符合)
console.log(validateInput("99988")); // true

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 10:31:14