2010-02-16 37 views
0

我想阻止兩個字符的輸入,但我希望用戶能夠輸入一個或另一個以及使用回車鍵。我想使用白名單而不是黑名單字符。正則表達式也需要支持最小和最大長度。我正在使用asp:regularexpression控件進行客戶端驗證。我不想做服務器端驗證,除非這是解決這個問題的唯一方法。有沒有其他人遇到過這個問題?預先感謝您的幫助。RegEx For Multiline ASP.NET Textbox

這是我目前使用正則表達式:(?!(&#))!

^[A-ZA-Z0-9 @#$%^ & _ = +〜」 ''「;;,\ r \ n。()\? - ] {1,1000} $

我正在使用一個設置爲多行的asp.net文本框,所以我必須允許\ r和\ n或什麼是使用多行文本框:)

我想讓用戶不要輸入&#在一起,但允許他們輸入文字&或#中,並允許所有字符a-zA-Z0-9!@#$%^ & * _ = +〜''「」;:,\ r \ n。()\? - 。

有效的文本輸入如下:

我對我的訂單有疑問。 訂單號碼是12345. 你能幫我嗎?

無效的文本輸入情況如下:

我試圖讓用戶從 進入&#在文本框中, 但我想允許他們進入&或#。

+0

Enter鍵無關有了它,你不能在一個文本框,新的生產線。至於你的問題 - 什麼?!一些例子會有幫助。 – Kobi

回答

0

string pattern = @"^(?!.*&#).{1,1000}$"

此斷言,字符串不包含組合&#否則允許1到1000個字符之間的任何東西長,包容性。如果您確實需要白名單,請將{之前的.替換爲您的白名單字符類別(在[]之內)。

+0

關閉,但仍然不工作 - 確實阻止&#但不允許返回鍵,因爲這是一個多行文本框,這是鍵 –

+0

該模式是正確的。你必須指定'RegexOptions.Singleline'。 – Jay

+0

RegExOptions不適用於正則表達式控件。我們沒有進行服務器端驗證。 –

0

這應該爲你工作:

string pattern = @"^(?![\s\S]*&#)[\s\S]{1,1000}$"