我有一個文本框和正則表達式驗證器應用於它。我想確保輸入到文本框中的唯一允許的字符串是「任何輸入」或「其他字符串」或「另一個字符串」,否則我想顯示一個錯誤。asp.net正則表達式不能按預期工作
這是正則表達式我到目前爲止:
ValidationExpression="(^Anything Entered)$|(^Something Else)$ |(^Another String)$"
然而,當我進入應該有效字符串顯示錯誤。我無法弄清楚表達方式有什麼問題。任何幫助將不勝感激。
我有一個文本框和正則表達式驗證器應用於它。我想確保輸入到文本框中的唯一允許的字符串是「任何輸入」或「其他字符串」或「另一個字符串」,否則我想顯示一個錯誤。asp.net正則表達式不能按預期工作
這是正則表達式我到目前爲止:
ValidationExpression="(^Anything Entered)$|(^Something Else)$ |(^Another String)$"
然而,當我進入應該有效字符串顯示錯誤。我無法弄清楚表達方式有什麼問題。任何幫助將不勝感激。
RegularExpressionValidator自動添加這些^和$。只需使用
"(Anything Entered|something Else|Another String)"
"^(Anything Entered)|(Something Else)|(Another String)$"
注意使用^
和$
。
雖然,正如其他人已經指出的那樣,在這裏使用^ $
是多餘的。
"(Anything Entered|Something Else|Another String)"
就好。
不完全。這表示「開始於'輸入的任何東西'或者包含'Something Else',或者以'Another String'結尾,您需要將所有三個選項放置在一組parens中,錨點位於它們之外 - 」^(foo | bar | baz)$' - 但正如@Jens指出的那樣,錨定器在驗證器中是多餘的。 –
(^Anything Entered)$|(^Something Else)$ |(^Another String)$
在正則表達式^字符串開始處匹配和$字符串的結尾匹配。你的正則表達式相當於(^Anything Entered$)|(^Something Else$)|(^Another String$)
。它匹配「輸入的任何內容」或「另一個字符串」,但與「別的東西」不匹配,因爲在字符串結尾後不能有空格($
)。
答案有什麼問題? – tiftik
您確定將「^」和「$」符號放在括號的不同側是正確的嗎? –