使用.NET时验证多行文本输入

Ben*_*n L 5 c# regex asp.net validation

我有一个HtmlTextArea,我想限制用户可以输入的字符数为500.

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

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

...当文本输入单行时,这很好,但只要文本包含新行字符(即多行),它就会立即失败验证.

我意识到有不同的正则表达式引擎,我需要用.NET测试一个(有人能指出我在网上的好方向吗?)但我尝试过其他一些东西,包括前置"(?m) "到我的表达式字符串,并用\ A和\ Z替换^和$,但到目前为止没有运气.

另一个相关的问题是,我可以避免使用正则表达式并将此验证器链接到我自己的验证函数吗?

cco*_*ook 6

"." 不包括新行.

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

这个页面可能也有帮助,它是一个正则表达式备忘单.


Jar*_*Par 6

将正则表达式更改为以下内容

"^(.|\n){0,500}$";
Run Code Online (Sandbox Code Playgroud)

的.字符匹配除换行符之外的所有内容.or子句将解决您的问题.