gpt4 book ai didi

c# - 多个独立的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:17 26 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 应用程序。此应用程序包含一个表单,我需要对其进行多个正则表达式检查,根据问题的不同,它应该有不同的错误。

有谁知道我将如何处理单独的错误?我曾尝试在一个模型属性上使用多个 RegularExpression 注释,但这会在编译时引发错误。这是代码示例:

[Required]
[Display(Name = "Distribution List Name")]
[StringLength(65, ErrorMessage = "Must be under 65 characters")]
[RegularExpression("^#(CONTOSO|MEGACORP|TESTCOMPANY)([-_A-Za-z0-9 ]+)$", ErrorMessage = "Invalid company, or the name contains invalid characters (Allowed characters are alphanumeric, - and _)")]
public string Name { get; set; }

理想情况下,我希望在字符串的开头检查公司,并检查允许的字符以抛出单独的错误消息。

最佳答案

您可以考虑的 2 个选项

一个。创建允许多次应用的自定义属性(使用 AllowMultiple=true)。

[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple=true)]
public class MyAttribute: RegularExpressionAttribute
{
....
}

并在Global.asax.cs中注册

DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(MyAttribute), typeof(RegularExpressionAttributeAdapter));

请注意,我还没有测试这是否适用于客户端验证

创建自定义验证器并分别测试每个正则表达式并返回适当的消息。

public class MyAttribute : ValidationAttribute, IClientValidatable
{
....
}

关于c# - 多个独立的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25597305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com