asp 正则表达式验证器:第一个字符后跟可选的第二个字符
aspx reg expression validator: first character followed by optional second char
我需要为 .aspx 程序构建一个正则表达式 (reg ex),以验证一个字符后跟可选字符。
第一个字符更严格,不允许连字符或 space。
我有
^[A-Za-z0-9][A-Za-z0-9 -]{1,9}
有效,但必须至少有两个字符(限制为总共 9 个字符)。
.net代码如下:
controltovalidate="txt1" validationexpression="^[A-Za-z0-9][A-Za-z0-9 -]{1,9}"></ASP:REGULAREXPRESSIONVALIDATOR>
[自问这个问题以来,我发现只需将 {1,9} 更改为 {0,9} 即可完成我需要的,但我保留这个问题可能对其他人有用,尤其是下面的答案]
我看过
^[A-Za-z0-9]([A-Za-z0-9 -])?{1,9}
可能会起作用,因为我在第一个字符之后用括号对字符进行分组并使用“?”作为可选。
但是,在将此代码移至生产环境之前,我真的需要知道这是否是正确的语法。
此外,它无法通过在线正则表达式验证器。
有谁知道这是否适用于 aspx reg 表达式验证器?
尝试以下操作:/^[A-Za-z0-9](?:[A-Za-z0-9 -]){1,8}$/
工作演示@regex101
编辑 #1(解释)
在您的模式 ^[A-Za-z0-9]([A-Za-z0-9 -])?{1,9}
中, 贪婪量词 又名 {n,m}
前面是 贪婪量词 又名 ?
,其中 none 是 可量化的 标记,因此在一个量词标记之前有另一个量词标记在语义上是不正确的。
为了实现您的目标,您必须让您的第二个可接受字符范围只允许 1 到 8 次出现:(?:[A-Za-z0-9 -]){1,8}
我需要为 .aspx 程序构建一个正则表达式 (reg ex),以验证一个字符后跟可选字符。
第一个字符更严格,不允许连字符或 space。
我有
^[A-Za-z0-9][A-Za-z0-9 -]{1,9}
有效,但必须至少有两个字符(限制为总共 9 个字符)。
.net代码如下:
controltovalidate="txt1" validationexpression="^[A-Za-z0-9][A-Za-z0-9 -]{1,9}"></ASP:REGULAREXPRESSIONVALIDATOR>
[自问这个问题以来,我发现只需将 {1,9} 更改为 {0,9} 即可完成我需要的,但我保留这个问题可能对其他人有用,尤其是下面的答案]
我看过
^[A-Za-z0-9]([A-Za-z0-9 -])?{1,9}
可能会起作用,因为我在第一个字符之后用括号对字符进行分组并使用“?”作为可选。
但是,在将此代码移至生产环境之前,我真的需要知道这是否是正确的语法。
此外,它无法通过在线正则表达式验证器。
有谁知道这是否适用于 aspx reg 表达式验证器?
尝试以下操作:/^[A-Za-z0-9](?:[A-Za-z0-9 -]){1,8}$/
工作演示@regex101
编辑 #1(解释)
在您的模式 ^[A-Za-z0-9]([A-Za-z0-9 -])?{1,9}
中, 贪婪量词 又名 {n,m}
前面是 贪婪量词 又名 ?
,其中 none 是 可量化的 标记,因此在一个量词标记之前有另一个量词标记在语义上是不正确的。
为了实现您的目标,您必须让您的第二个可接受字符范围只允许 1 到 8 次出现:(?:[A-Za-z0-9 -]){1,8}