我正在使用 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/