簡體   English   中英

使用.NET時驗證多行文本輸入

[英]Validating multi-line text input when using .NET

我有一個HtmlTextArea,我想限制用戶可以輸入的字符數為500。

目前我使用了RegularExpressionValidator ......

RegularExpressiondValidator val = new RegularExpressiondValidator ();
val.ValidationExpression = "^.{0,500}$";
val.ControlToValidate = id;
val.ErrorMessage = "blah";

...當文本輸入單行時,這很好,但只要文本包含換行符(即多行),它就會立即失敗驗證。

我意識到有不同的正則表達式引擎,我需要用.NET測試一個(有人能指出我在網上的好方向嗎?)但我嘗試過其他一些東西,包括前置“(?m) “到我的表達式字符串,並用\\ A和\\ Z替換^和$,但到目前為止沒有運氣。

另一個相關的問題是,我可以避免使用正則表達式,並以某種方式將此驗證器鏈接到我自己的驗證函數嗎?

“。” 不包括新行。

^((|。\\ n){} 0,500)$

這個頁面也可能有用,它是一個正則表達式備忘單。

將正則表達式更改為以下內容

"^(.|\n){0,500}$";

的。 字符匹配除換行符之外的所有內容。 or子句將解決您的問題。

我會以兩種方式做到這一點,如果你知道javascript並想要限制客戶端字符長度你可以用jQuery(一個流行的javascript擴展庫)來做。

$(document).ready(function(){
  var $TextBox = $("#<%=TextBox.ClientID %>");

  $TextBox.keyup(function(){
     return $TextBox.length <= <%=TextBox.MaxLength %>;
  });
});

然后使用自定義驗證器或按鈕單擊方法執行類似的服務器檢查。

還有一些方法可以使用javascript啟用和禁用ASP.Net Validators,因此您也可以查看它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM