【发布时间】:2015-05-03 22:58:38
【问题描述】:
我有一个带有正则表达式的注册模型,但在 C# 中我们有 Regex.ValidateMatchTimeout 来防止 DDoS 攻击。 问题是,如何在模型中实现带时间限制的正则表达式?
我的模型中的普通正则表达式:
[DataType(DataType.EmailAddress)]
[Required]
[Display(Name = "Email")]
[StringLength(80, ErrorMessage = "Email too large.")]
[RegularExpression(@"^([a-zA-Z0-9_.-]+)@(outlook|hotmail|yahoo)\.\w{2,}$", ErrorMessage = "Invalid email.")]
public string Email { get; set; }
【问题讨论】:
-
您的示例正则表达式不容易出现catastrophic backtracking,并且是锚定的,这意味着它快速。您对此有任何实际用例吗?
-
@LucasTrzesniewski 嗯?你是说我的正则表达式做得很好,不是吗?
-
是的,没错,这意味着这个特定的模式永远不会超时。 :)
标签: regex asp.net-mvc