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

求正则表达式:禁止连续递增数字/字母序列(WebForms应用)

解决方案:禁止连续递增数字/字母序列的正则表达式

可以实现你需要的规则,以下是针对旧版WebForms(基于.NET正则引擎)的具体方案:

1. 匹配禁止序列的正则片段

4位连续递增数字(如1234、2345)

精准匹配每一位比前一位大1的4位数字:

(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){3}\d

原理:通过(?=)正向预查,确保每个数字后面紧跟比它大1的数字,连续3次预查后,最后一位数字组成完整的4位递增序列。

连续递增字母序列(如abc、BCD,支持大小写)

匹配3位连续递增的字母(更长的递增序列如abcd会包含abc片段,因此也会被匹配拦截):

(?i)(?:a(?=b)|b(?=c)|c(?=d)|d(?=e)|e(?=f)|f(?=g)|g(?=h)|h(?=i)|i(?=j)|j(?=k)|k(?=l)|l(?=m)|m(?=n)|n(?=o)|o(?=p)|p(?=q)|q(?=r)|r(?=s)|s(?=t)|t(?=u)|u(?=v)|v(?=w)|w(?=x)|x(?=y)|y(?=z)){2}[a-z]

(?i)开启不区分大小写模式,确保同时匹配大小写递增序列。原理与数字部分一致,连续2次预查“字母后面紧跟大1的字母”,再加上最后一位组成3位递增序列。

2. 完整验证正则

因为需要禁止上述序列,使用否定正向预查确保输入中不存在任何禁止片段,完整正则如下:

^(?!.*(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){3}\d|(?i)(?:a(?=b)|b(?=c)|c(?=d)|d(?=e)|e(?=f)|f(?=g)|g(?=h)|h(?=i)|i(?=j)|j(?=k)|k(?=l)|l(?=m)|m(?=n)|n(?=o)|o(?=p)|p(?=q)|q(?=r)|r(?=s)|s(?=t)|t(?=u)|u(?=v)|v(?=w)|w(?=x)|x(?=y)|y(?=z)){2}[a-z])).*$
  • ^和$锁定整个输入字符串,避免仅检查部分内容;
  • (?!.*(...))否定预查:只要输入中包含括号内的任意禁止序列,验证直接失败;
  • |分隔数字和字母的禁止规则,覆盖两种违规场景。

3. WebForms控件使用示例

将正则填入RegularExpressionValidator的ValidationExpression属性即可:

<asp:TextBox ID="txtUserInput" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="revInputCheck" runat="server"
    ControlToValidate="txtUserInput"
    ValidationExpression="^(?!.*(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){3}\d|(?i)(?:a(?=b)|b(?=c)|c(?=d)|d(?=e)|e(?=f)|f(?=g)|g(?=h)|h(?=i)|i(?=j)|j(?=k)|k(?=l)|l(?=m)|m(?=n)|n(?=o)|o(?=p)|p(?=q)|q(?=r)|r(?=s)|s(?=t)|t(?=u)|u(?=v)|v(?=w)|w(?=x)|x(?=y)|y(?=z)){2}[a-z])).*$"
    ErrorMessage="输入包含禁止的连续递增序列,请修改"
    Display="Dynamic">
</asp:RegularExpressionValidator>

4. 测试验证

  • 允许输入:123、455、1111、ABB、BBC、abc123
  • 禁止输入:1234、2345、abc、BCD、xyz1234、aBcDef

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:15:50