【问题标题】:Regex is not working in RegularExpression attribute on c#正则表达式在 c# 的正则表达式属性中不起作用
【发布时间】:2018-01-17 07:31:49
【问题描述】:

伙计们,我不知道这个问题是否已经存在,但我已经尝试了每一次搜索,所以我的问题是为什么我的正则表达式在 RegularExpression 属性中不能正常工作。我在 javascript 中使用过这个相同的正则表达式,这适用于 javascript。谁能帮助我在这里做错了什么?

[Required]
[Display(Name = "First name")]
[MaxLength(50)]
[RegularExpression("^(?![@\\+\\-=\\*])", ErrorMessage = "First Name Should not start with these characters @, +, =, *, -")]
public string firstname { get; set; }

我正在使用此正则表达式来验证名字不应以 @,+,=,*,- 开头。

我已经花了 3 个小时来弄清楚我在这里做错了什么。

【问题讨论】:

  • 考虑到这两个有不同的正则表达式引擎,你可能会遇到某些差异。
  • not working 是什么意思?您的验证器根本没有在客户端触发吗?或者正则表达式没有按预期进行验证?
  • 您的正则表达式失败。您可以在这里测试正则表达式:regexstorm.net/tester
  • @DarjanBogdan 我已经使用 Regex 类测试了这个正则表达式,我认为这适用于 C#,但我是第一次使用 RegularExpression 属性,所以我不知道它是如何工作的。
  • @Zeeshan 正在触发,但它没有按我预期的那样工作。它不允许任何事情。

标签: c# regex model-view-controller


【解决方案1】:

我相信你的正则表达式应该是这样的:

^(?![@\\+\\-=\\*]).*

Here is a working example.

【讨论】:

  • 谢谢,这很有魅力,你能告诉我我做错了什么吗?
  • @ManishTiwari 基本上你没有在末尾添加.*
【解决方案2】:

您的正则表达式无效。这是更新后的版本,它可以按您的预期工作:

^(?![@\\+\-\\=\\*])

【讨论】:

  • teo van kot 回答有效。让我也测试一下你的
猜你喜欢
  • 2020-07-08
  • 1970-01-01
  • 1970-01-01
  • 2015-06-19
  • 2013-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多