簡體   English   中英

如何編寫一個允許空格和限制字符數的正則表達式?

[英]How can I write a regex that will allow space and limit number of characters?

我的模型中有一些驗證。 對於社團名稱:

  1. 僅字母,大小寫。
  2. 沒有數字
  3. 必須允許駱駝套
  4. 在單詞之間留出空格。
  5. 限制為1-16個字符。

碼:

[Required(ErrorMessage = "Society Name is required.")]
    [StringLength(200, ErrorMessage = "The {0} has a maximum of {1} characters.")]
    [RegularExpression(@"^[A-Z][0-9]{16}$", ErrorMessage = "Society Name field requires 1-16 Alphabetical characters.")]
    [Display(Name = "Society Name *")]
    public string SocietyName { get; set; }

您實際上應該允許使用空格和小寫字母,現在,這些模式甚至不會出現在當前的正則表達式中。 同樣,您使用了[0-9]來匹配數字,盡管數字不應根據您的要求進行匹配。

要匹配大小寫字母或/和空格字符,可以使用

^[A-Za-z\s]{1,16}$

請參閱此正則表達式演示

細節

  • ^ -字符串的開頭
  • [A-Za-z\\s]{1,16} -1至16個ASCII字母或/和空格字符
  • $ -字符串結尾。

如果您只想在單詞之間留出1個空格,請使用

^(?=.{1,16}$)[A-Za-z]+(?:\s[A-Za-z]+)*$

請參閱此正則表達式演示

細節

  • ^ -字符串的開頭
  • (?=.{1,16}$) -字符串長度可以是1到16
  • [A-Za-z]+ -1+個ASCII字母
  • (?:\\s[A-Za-z]+)* -零個或多個重復
    • \\s -1個空格
    • [A-Za-z]+ -1+個ASCII字母
  • $ -字符串結尾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM