我想在下面的正则表达式中加入限制,以便name
,NAME
,Name
,NaMe
等无法通过验证以下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
答案 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字母,数字或空格$
- 字符串结束。