aspx reg表达式验证器:第一个字符后跟可选的第二个字符

时间:2015-09-09 18:10:05

标签: asp.net .net regex validation character

我需要为.aspx程序形成一个正则表达式(reg ex),该程序验证一个字符后跟可选字符。

第一个字符更严格,不允许连字符或空格。

我有

^[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}即可完成我的需要,但我保留的问题可能对其他人有用,尤其是下面的答案] < / p>

我读了那个

^[A-Za-z0-9]([A-Za-z0-9 -])?{1,9}

可能会起作用,因为我在第一次使用parens并使用“?”后对字符进行分组。作为选择。

但是,在将此代码移至生产之前,我确实需要知道这是否是正确的语法。

此外,它失败了在线注册表达式验证器。

有谁知道这是否适用于aspx reg表达式验证器?

1 个答案:

答案 0 :(得分:1)

请尝试以下操作:/^[A-Za-z0-9](?:[A-Za-z0-9 -]){1,8}$/

工作演示@ regex101

编辑#1(解释)

在您的模式^[A-Za-z0-9]([A-Za-z0-9 -])?{1,9}中,贪婪量词又名{n,m}前面是贪婪量词又名?,其中没有一个是可量化的标记,因此在另一个量词标记前面加上量词标记是不正确的。

为了实现您的目标,您必须让第二个可接受的字符范围仅允许 1 8 外观:(?:[A-Za-z0-9 -]){1,8}