2010-03-16 103 views
0

我有一个文本框和正则表达式验证器应用于它。我想确保输入到文本框中的唯一允许的字符串是“任何输入”或“其他字符串”或“另一个字符串”,否则我想显示一个错误。asp.net正则表达式不能按预期工作

这是正则表达式我到目前为止:

ValidationExpression="(^Anything Entered)$|(^Something Else)$ |(^Another String)$" 

然而,当我进入应该有效字符串显示错误。我无法弄清楚表达方式有什么问题。任何帮助将不胜感激。

+0

您确定将“^”和“$”符号放在括号的不同侧是正确的吗? –

回答

2

RegularExpressionValidator自动添加这些^和$。只需使用

"(Anything Entered|something Else|Another String)" 
2
"^(Anything Entered)|(Something Else)|(Another String)$" 

注意使用^$
虽然,正如其他人已经指出的那样,在这里使用^ $是多余的。

"(Anything Entered|Something Else|Another String)"就好。

+0

不完全。这表示“开始于'输入的任何东西'或者包含'Something Else',或者以'Another String'结尾,您需要将所有三个选项放置在一组parens中,锚点位于它们之外 - ”^(foo | bar | baz)$' - 但正如@Jens指出的那样,锚定器在验证器中是多余的。 –

-1

(^Anything Entered)$|(^Something Else)$ |(^Another String)$

在正则表达式^字符串开始处匹配和$字符串的结尾匹配。你的正则表达式相当于(^Anything Entered$)|(^Something Else$)|(^Another String$)。它匹配“输入的任何内容”或“另一个字符串”,但与“别的东西”不匹配,因为在字符串结尾后不能有空格()。

+0

答案有什么问题? – tiftik

相关问题