asp.net - 正则表达式用于测试范围内任意字符的数量

标签 asp.net regex

我正在使用 ASP 验证控件,想要测试多行文本框内容是否在 2 到 40 个字符之间。可以提供任何字符,包括换行符。会是什么表情呢?我下面的失败了。

<asp:RegularExpressionValidator ID="RegularExpressionValidator" 
   runat="server"
   ValidationExpression="^[.]{2,40}$"
   ControlToValidate="CommentsTextBox"
   ErrorMessage="The Comment field must be between 2 and 40 characters" 
   Display="Dynamic">*</asp:RegularExpressionValidator>

最佳答案

当您将点放在方括号内时,它就失去了其特殊含义,只匹配字面点。在 ASP RegularExpressionValidator 中匹配任何字符的最简单方法如下:

^[\s\S]{2,40}$

[\s\S] 是标准的 JavaScript 习惯用法,用于匹配包括换行符在内的任何内容(因为 JS 不支持 DOTALL 或 s-mode,后者允许点匹配换行符)。它在 .NET 中的工作方式相同,因此您不必担心点是否与换行符匹配,或者正则表达式是否将应用于服务器或客户端。

关于asp.net - 正则表达式用于测试范围内任意字符的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2375954/

相关文章:

regex - R 中 (^|\\s)([A-Z]{1,3})(\\s|$) 和\\b[A-Z]{1,2}\\b 正则表达式之间的区别

asp.net - 将值绑定(bind)到 gridview 内的文本框

c# - Updatepanel 中的 ImageButton 仅在第一页加载时触发

Asp.Net Web Api - 发布英国日期格式

python - 将字符串匹配到元组列表

javascript - 转到 : regexp to swap cases

c# - ASP.NET MVC OWIN 和 SignalR - 两个 Startup.cs 文件

html - 尝试在标题元素之间添加一行分隔线

javascript - 如何使用后向和前向零长度断言提取括号内的字符串?

javascript - 这两个正则表达式之间的差异可以忽略不计吗?