2010-03-16 85 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

相關問題