Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.2k views
in Technique[技术] by (71.8m points)

asp.net mvc - Match any string starting with certain characters regex MVC DataAnnotations

I new to Regular Expressions in MVC DataAnnotations. I have a form that has a field named Option. The option must start with CA-. I wrote the Regular Expression in different ways to validate this field and I can get it to work. I tried all this:

[RegularExpression(@"^CA-")]
[RegularExpression(@"/CA-/")]
[RegularExpression(@"^[C]+[A]+[-]")]
[RegularExpression(@"^CA-*")]

none of this work. What is wrong with my code? Thank you.

public class CA_OptionsMetadata
{
    [RegularExpression(@"^CA-", ErrorMessage = "The Option must start with CA-")]
    [Required(ErrorMessage = "Option is Required")]
    public string Option { get; set; }
    //public string Cap_LBS { get; set; }
    //public string Cap_KG { get; set; }
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

To match CA at the beginning of a string, use

@"^CA-.*$"

The main point is that the whole string should match (it is required by the RegularExpression), thus .*$ is important.

Regex explanation:

  • ^ - start of string
  • CA- - a literal CA- sequence of characters
  • .* - zero or more characters other than a newline
  • $ - end of string

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...