- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将以下正则表达式设置为 Web 表单中 RegularExpressionValidator 的 ValidationExpression
属性。当我在已验证的控件中输入非法字符时,验证器会检测到它并显示错误消息。
<appSettings>
<add key="categoryPattern" value="^[a-zA-Z0-9_+\-() ]{1,50}$" />
</appSettings>
我的验证器:
<asp:RegularExpressionValidator ValidationExpression="<%$ AppSettings:categoryPattern %>"
我的服务器端验证:
Regex rex = new Regex(ConfigurationManager.AppSettings["categoryPattern"]);
if (!rex.Match(categoryName).Success)
{
throw new ArgumentException("CategoryName must match expression: " + rex);
如您所见,客户端和服务器端应用了完全相同的模式。
但是,当我清除已验证的控件并提交空字符串时,验证器认为它没问题,并且我从服务器端验证中收到错误。除了正则表达式验证器的契约(Contract)被破坏之外,有人知道这里出了什么问题吗?
最佳答案
这是设计使然。您还应该添加一个 RequiredFieldValidator
来强制用户输入。 RegularExpressionValidator
假定空字段有效(甚至不通过 Regex
运行它们)。其背后的原因是,例如,您的表单中可能有一个可选的电子邮件地址 2
字段,该字段不是必需的,但如果输入了该字段,则它应该是有效的电子邮件地址。为了轻松实现这一点,其他验证器会忽略空字段,如果您需要将它们设为必填字段,只需添加另一个 RequiredFieldValidator
。
事实上,没有必要在服务器上手动重新验证。 ASP.NET 验证器还支持它构建的服务器端验证。您只需检查 Page.IsValid
属性即可。
关于asp.net - RegularExpressionValidator 不检测空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/791260/
我编写了以下正则表达式。它应该仅匹配不以 .aspx 结尾的文件名或文件夹名称。 ValidationExpression=".*[^(\.aspx)]$" 但是它不起作用。所以,正则表达式领域的国王
我正在尝试编写一个正则表达式(用于 ASP.NET RegularExpressionValidator)以便: 如果要验证的字符串包含字母 A 后跟字母 B,则验证应该失败。 如果要验证的字符串包含
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
Visual Studio 2012、Asp.net、网络表单。 试图控制文本框的输入,仅限数字。我有以下代码: 但我可以输入任何文本。我错过了什么? 最佳答案 这首先检查文本框是否为空,然后仅检查
我想验证只包含数字的字符串。容易验证?我添加了 RegularExpressionValidator,ValidationExpression="/d+"。 看起来不错 - 但仅输入空格时没有任何验证
我有一个需要验证的文本框,以便用户最多可以输入四个字符,它们可以是字母数字。我正在使用 VS2003、.NET 1.1。 请告诉我应该使用什么表达式来验证此条件任何帮助都会很棒。谢谢! 这样试过:
我将以下正则表达式设置为 Web 表单中 RegularExpressionValidator 的 ValidationExpression 属性。当我在已验证的控件中输入非法字符时,验证器会检测到它
有没有办法仅在 ValidationExpression 不匹配时才使用 RegularExpressionValidator 进行验证?特别是使用 PO BOX 正则表达式来验证不是 PO BOX
我正在尝试使用 RegularExpressionValidator 来验证 TextBox 输入长度。我可以使用它,但它只接受字母和数字。我想允许任何字符,唯一的检查是字符数不超过 25 个。
我在尝试使用 asp:RegularExpressionValidator 验证 asp:TextBox 控件时遇到问题。我简化了我正在使用的正则表达式,并隔离了 RegularExpressionV
我有一个请求,我在锻炼时遇到了困难……完成“名称”字段后,其下方的 5 个标签应显示红色星号 Form 我添加了一个 RegularExpressionValidator,它会在文本框被填充和标记后动
当试图通过服务器控件创建一个冗长的 RegEx ErrorMessage 时,我认为添加背景颜色和边界来为消息提供一些“风格”会很好。 当我尝试使用边框和颜色将 CssClass 附加到服务器控件时,
我在以编程方式将 RegularExpressionValidator 添加到任何容器控件(面板、占位符等)时遇到问题。这是我的代码: // Get the path of the file on t
我想使用 ASP.NET RegularExpressionValidator 来限制文本框中的字数。 (RegularExpressionValidator 是我最喜欢的解决方案,因为它会同时进行客
如果输入的字符串看起来像 Vehicle Identification Number (VIN),我想进行初步检查.我知道它由 17 个字母和数字组成,但是 VIN 中不允许使用字母 I、O 和 Q,
我正在尝试制作一个用于上传图片的表单。我放置了一个 RegularExpressionValidator 来检查所选文件的扩展名。它的 ValidationExpression 是: (?i:^.+(
我在让正则表达式字段验证器为我尝试更新的 asp 页面工作时遇到问题。 这是 asp:Panel 的重要部分: Name:
当有人试图在没有从下拉列表中选择“状态”的情况下提交表单时,我试图显示一条错误消息。我知道我可以使用 RegularExpressionValidator 放入错误消息,但我将使用什么来验证表达式?
给定这个正则表达式:"^[0-9]*\s*(lbs|kg|kgs)$" 如何使其不区分大小写?我试图在 .net 正则表达式验证器中使用它,因此我需要在模式中指定不区分大小写。 我无法以编程方式使用
有没有一种简单的方法可以在忽略空格的同时使用 RegularExpressionValidator 控件? 我可以将自定义验证器控件与 Regex 和 IgnorePatternWhitespace
我是一名优秀的程序员,十分优秀!