2017-04-21 95 views
1

我有一個asp:文本框,我試圖確保用戶不會複製並粘貼到標籤中。下面的代碼在檢查<和>時會起作用,但如果用戶點擊Enter或Return鍵在文本框中創建新行,它也會拋出錯誤消息。我需要對ValidationExpression進行哪些更改以允許用戶使用Enter/Return鍵,但不允許使用<或>鍵?Enter/Return Key Triggers RegularExpressionValidator

<asp:RegularExpressionValidator ID="RegularExpressionVal3" runat="server" 
            ErrorMessage="You cannot put tags into the text box (e.g. &lthtml&gt)" 
            ControlToValidate="txtMSPC" 
            ValidationExpression="^(?!<.*?>).*" ForeColor="Red" /> 
+0

你的意思是在開始或字符串內的任何地方沒有任何標籤?試試'ValidationExpression =「^(?![\\ s \\ S] * <[^>] *>)[\\ s \\ S] *」'。如果您只在服務器端運行驗證,請嘗試'ValidationExpression =「(?s)^(?!。* <[^>] *>)。*」' –

+0

我正在尋找客戶端並在字符串中的任意位置查找標記。例如:「這個文本是粗體」應該拋出錯誤信息。使用上面的客戶端表達式,它允許返回,但它不允許任何字符或數字。 – Jbrown

回答

0

僅適用於客戶端驗證,你可以使用

ValidationExpression="^(?![\\s\\S]*<[^>]*>)[\\s\\S]*" 

詳細

  • ^ - 字符串的開始
  • (?![\\s\\S]*<[^>]*>) - 沒有跟着0 < +除了>和t以外的字符母雞>字符串
  • [\\s\\S]**的 - 任何0+字符
+0

我正在尋找客戶端。您的表達式返回了以下錯誤消息:Uncaught SyntaxError:無效的正則表達式:/(?s)^(?![\\ s \\ S] * 0123)] [] [\\ s \\ S] * /: – Jbrown

+0

我很抱歉,匆忙。當然'(?s)'應該被刪除。 –

+0

我刪除了我的評論,以確保我沒有將其他人混淆。上面的答案如上所述。 – Jbrown