在正则表达式验证器中包含特定值限制

时间:2016-12-15 16:19:09

标签: asp.net regex

我想在下面的正则表达式中加入限制,以便nameNAMENameNaMe等无法通过验证以下REV:

<asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="tbAttColName"
                    CssClass="failureNotification" ErrorMessage="Column can only contain alpha numeric and spaces, and must start with a letter"
                    ValidationGroup="AddColumn" Text="*" ValidationExpression="^[A-Za-z][0-9A-Za-z ]*$" Display="Dynamic" />

有效输入的示例:

nam
nam1
name1
theName
N1ame
helloname
whatisyourname

无效输入的示例:

1name
Name
NAME
NaMe
naME

1 个答案:

答案 0 :(得分:1)

您希望允许符合您的模式的任何值排除某个值(等于完整字符串)。这意味着你需要添加一个在开头锚定的负前瞻,它的模式应该用$锚定在字符串的末尾。

^(?![Nn][Aa][Mm][Ee]$)[A-Za-z][A-Za-z0-9 ]*$
 ^^^^^^^^^^^^^^^^^^^^^

请参阅regex demo

<强>详情:

  • ^ - 字符串开头
  • (?![Nn][Aa][Mm][Ee]$) - 整个字符串不能等于name字符串(不区分大小写)
  • [A-Za-z] - ASCII字母
  • [A-Za-z0-9 ]* - 零个或多个ASCII字母,数字或空格
  • $ - 字符串结束。