特定于.net C#dataannotations的.NET正则表达式

Chr*_*ina 7 c# regex asp.net-mvc data-annotations

我有一个正则表达式,我正在试图找出我正在使用的.NET数据注释验证模型.目前它看起来像这样

[RegularExpression("^((?!City)[a-zA-Z '])+$", ErrorMessage = "City is required and must be properly formatted.")]
Run Code Online (Sandbox Code Playgroud)

这个正则表达式的前半部分是占城市,下半部分是确保其唯一的字母和空格.

输入文本框的默认值为City,因此只有"City"无法通过验证.我似乎无法获得该正则表达式的第一部分以使这些案例通过.

Cityville  
City City
Jersey City
Arizona City
Run Code Online (Sandbox Code Playgroud)

但是这个案子没有通过:

City
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

*编辑* 这个做了诀窍:

^((?!^ City $)[a-zA-Z'])+ $

我更新了所有验证以包含此内容.以防你想看看我在做什么.这里是我正在使用的整个验证数据模型的代码.(用正确的正则表达式更新)

public class FormModel {
    [Required(ErrorMessage = "First Name is a Required field.")]
    [DataType(DataType.Text)]
    [Display(Order = 1, Name = "FirstName")]
    [RegularExpression("^((?!^First Name$)[a-zA-Z '])+$", ErrorMessage = "First name is required and must be properly formatted.")]
    public string FirstName { get; set; }

    [Required(ErrorMessage = "Last Name is a Required field.")]
    [DataType(DataType.Text)]
    [Display(Order = 2, Name = "LastName")]
    [RegularExpression("^((?!^Last Name$)[a-zA-Z '])+$", ErrorMessage = "Last name is required and must be properly formatted.")]
    public string LastName { get; set; }

    [Required(ErrorMessage = "Address is a Required field.")]
    [DataType(DataType.Text)]
    [Display(Order = 3, Name = "Address")]
    [RegularExpression("^((?!^Address$)[0-9A-Za-z #.,])+$", ErrorMessage = "Address is required and must be properly formatted.")]
    public string Address { get; set; }

    [DataType(DataType.Text)]
    [Display(Order = 4, Name = "Address2")]
    public string Address2 { get; set; }

    [Required(ErrorMessage = "City is a Required field.")]
    [DataType(DataType.Text)]
    [RegularExpression("^((?!^City$)[a-zA-Z '])+$", ErrorMessage = "City is required and must be properly formatted.")]
    [Display(Order = 6, Name = "City")]
    public string City { get; set; }

    [Required( ErrorMessage = "State is a Required field." )]
[DataType( DataType.Text )]
[Display( Order = 7, Name = "State" )]
public IEnumerable<String> State { get; set; }

[Required( ErrorMessage = "Zip is a Required field." )]
[DataType( DataType.Text )]
[RegularExpression( "\\d{5}",
        ErrorMessage = "Zip Code is required and must be properly formatted.")]
[Display( Order = 8, Name = "Zip" )]
public String Zip { get; set; }

[Required( ErrorMessage = "Phone is a Required field." )]
[DataType( DataType.PhoneNumber )]
[RegularExpression( "^[01]?[- .]?\\(?[2-9]\\d{2}\\)?[- .]?\\d{3}[- .]?\\d{4}$",
        ErrorMessage = "Phone is required and must be properly formatted.")]
[Display( Order = 9, Name = "Phone" )]
public string Phone { get; set; }

[Required( ErrorMessage = "Email is a Required field." )]
[DataType( DataType.EmailAddress )]

[RegularExpression( "^[A-Za-z0-9._%+-]*@[A-Za-z0-9.-]*\\.[A-Za-z0-9-]{2,}$",
        ErrorMessage = "Email is required and must be properly formatted.")]
[Display( Order = 10, Name = "Email" )]
public string Email { get; set; }
Run Code Online (Sandbox Code Playgroud)

Sri*_*ara 4

尝试一下正则表达式 - ^((?!^City$)[a-zA-Z '])+$
为了对“City”进行否定检查,我向 City 添加了开始 (^) 和结束 ($) 字符。我已经在http://regex101.com/r/bF4bZ3上对其进行了测试,如果我正确理解了要求,它似乎可以工作。