![](/img/trans.png)
[英]When multi-line text pasted into text input regex does not match the space
[英]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}$";
的。 字符匹配除換行符之外的所有內容。 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.