asp.net - RegularExpressionValidator 限制输入长度而不限制字符类型

标签 asp.net .net regex validation

我正在尝试使用 RegularExpressionValidator 来验证 TextBox 输入长度。我可以使用它,但它只接受字母和数字。我想允许任何字符,唯一的检查是字符数不超过 25 个。

<asp:TextBox ID="MenuLabel" runat="server" />
<asp:RegularExpressionValidator ValidationExpression="^[a-zA-Z0-9]{25}$" ID="MenuLabelVal" runat="server" ErrorMessage="Menu Label must be no longer than 25 characters." ControlToValidate="MenuLabel"  />

正则表达式不是我的强项,所以有人可以告诉我如何修改 ^[a-zA-Z0-9]{25}$ 来表示任何字符 最多 25 次,而不仅仅是字母数字。

注释 1:我已经有一个 RequiredFieldValidator 以确保 1 个或多个字符。

注释 2: 我知道我可以只使用 TextBox 上的 MaxLength 属性,但是此表单也用于编辑现有数据,我不希望它这样做编辑时只需截断现有记录。我更喜欢实现一个验证器,这使得编辑现有数据的用户很明显需要缩短值,而不是在用户没有意识到的情况下截断表单。

注释 3:我愿意接受替代解决方案,例如自定义验证器,只要它仅依赖于客户端验证即可。我无权访问隐藏代码以在服务器上编写自定义验证处理程序。

最佳答案

.{1,25} 

应将该值限制为任意字符 1 到 25 次。但不确定这将如何处理 unicode 输入 - 它可能会将多字节字符计为单个字符,因此如果您使用它来限制数据库,请小心

您可能想要^.{1,25}$,但我认为即使是这个简单的版本也应该可以工作

关于asp.net - RegularExpressionValidator 限制输入长度而不限制字符类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11263659/

相关文章:

javascript - ASP.NET 网站的 AJAX 购物车

c# - 制作家谱并记住树中的父节点

c# - NHibernate 从类生成映射?

c# - System.Reflection 没有方法

带有utf8问题的python正则表达式

c# - 如何执行连接两个实体的 LINQ 查询并在其中一个实体上选择什么位置?

asp.net - 跟踪网络服务器上旧的上传文件 - 您如何知道哪些文件不再使用?

python - 从 python 正则表达式中取消设置标志

c# - 使用 ComboBox 将 DataGridView 绑定(bind)到 DataTable 不起作用

php - 匹配元标记的正则表达式