我在这里有一个问题,我比较新的RegularExpressionValidator。它接受所有字母数字,撇号,连字符,下划线,空格,&符号,逗号,括号,句号。RegularExpressionValidator TextBox
我给出的答案是:
"^([a-zA-Z0-9 '-_&,()\.])+$"
这似乎善于第一,但它似乎接受amoung其他事情“*”。
有人可以告诉我我在这里有什么错吗?
我在这里有一个问题,我比较新的RegularExpressionValidator。它接受所有字母数字,撇号,连字符,下划线,空格,&符号,逗号,括号,句号。RegularExpressionValidator TextBox
我给出的答案是:
"^([a-zA-Z0-9 '-_&,()\.])+$"
这似乎善于第一,但它似乎接受amoung其他事情“*”。
有人可以告诉我我在这里有什么错吗?
问题似乎是破折号 - 在角色类中,如果未转义,而不是在字符类的最后或最开始处,则表示范围(A-Z
将是您自己的正则表达式的一个很好的例子)。
因此'-_
也被解释为一个范围,并且ASCII 39('
)和ASCII 95(_
)之间的字符是()*+,-./0-9:;<=>[email protected][\]^
。
把短跑末,你应该罚款:
^[a-zA-Z0-9 '_&,().-]+$
因为我也绊倒了这个事实,即在我最初的答案中使用了一个角色类,所以我挖掘了更多信息。发现下面的教程摘录在http://www.regular-expressions.info/charclass.html
唯一特殊字符或 元字符一个字符 类是右括号内(]),所述 反斜杠()时,插入符号(^)和 连字符( - )。通常的元字符 是 字符类中的正常字符,并且不需要由反斜杠转义的 。
用\-
转义-
应该可以解决您的问题。
你的性格类是不太正确的。这部分:'-_
创建从撇号字符到下划线字符的范围。在ASCII表中,*
字符介于两者之间。你需要或者逃避连字符:
^([a-zA-Z0-9 '\-_&,()\.])+$
或移动到某个地方“小儿科”,如字符类的末尾:
^([a-zA-Z0-9 '_&,()\.-])+$
除了“-_问题涉及由其他人你也有错误的地方结束+。
在这个表达式的值捕获组:
^([a-zA-Z0-9 '-_&,()\.])+$
在快报
是字符串中的最后一个字符。
如果你想捕捉的正则表达式中,整个事情,然后把后+直]像
^([a-zA-Z0-9 '-_&,()\.]+)$
如果你没有打扰有关提取内捕获的(价值),然后删除()
^[a-zA-Z0-9 '-_&,()\.]+$
这真的是你用过的吗?你错过了一个关闭的位置)(在开始时有一个开放的,不关闭) – 2010-12-08 20:54:15
输入它错了。我现在编辑它,这就是我的。谢谢! – BigJim 2010-12-08 20:56:54
当你举出一个例子,每个角色都有特殊的含义时,你不应该把这个例子包装在“”中。我们不清楚你是否在你的真实验证器中使用它。我假设没有。 – rtpHarry 2010-12-08 21:25:19