【发布时间】:2020-08-24 19:12:01
【问题描述】:
我需要验证我的 c# 模型类。
[Required(ErrorMessage = "Comma Separated String Required")]
[RegularExpression(@"", ErrorMessage = "Invalid Comma Separated String.")]
[RegularExpression(@"", ErrorMessage = "Duplicate Code.")]
public string CommaSeparatedString { get; set; }
我刚刚尝试了以下正则表达式,但它不适合我。
((\s+)??(\d[a-z]|[a-z]\d|[a-z]),?)+?$
就我而言,CommaSeparatedString 可以是:
ASAEW1,ASAEW2,ASA,S4,ASAEW5,ASAEW6,ASAEW7 - Valid
ASAEW1,ASAEW2,ASA,S4,ASAEW5,ASAEW6,ASAEW7,ASAEW6 - Invalid - Duplicate ASAEW6
ASAEW1,ASAEW2,ASA,S4,ASAEW5,ASAEW6,ASAEW7, - Invalid - Comma at end
ASAEW1,ASAEW2,,ASA,S4,ASAEW5,ASAEW6,ASAEW7 - Invalid - No value between 2,3 comma
上述要求应该会发生。有没有办法检查逗号分隔字符串中的重复项?如果CommaSeparatedString 包含重复项,我需要显示'Duplicates code' 错误消息。我该怎么做?
【问题讨论】:
-
不是一个完整的答案,但我认为 FluentValidation 库会在这里创造奇迹,您可以在其中编写自定义验证规则。仅使用 RegEx,您不会走得太远,我认为您需要编写一些代码来拆分参数并检查它们的存在以及是否有任何重复