2016-07-28 20 views
-1

嘿傢伙我目前正在把一個簡單的ASP.NET MVC表單。對於第一個和最後一個名字,我試圖確保只能使用字母a-zA-Z,並且可以使用1-50個字符的最小和最大字符數,但是我總是看到正則表達式不匹配。實體框架正則表達式不匹配

[Required(ErrorMessage = "Please enter your first name.")] 
[Display(Name = "First Name")] 
[StringLength(50, MinimumLength = 1, ErrorMessage = "First name should not be longer than 50 characters.")] 
[RegularExpression(@"^[a-zA-Z]{1, 50}$")] 
public string FirstName { get; set; } 

我已經在幾個在線計算器,告訴我這是corect但是不匹配測試表單時總是出現測試的正則表達式語句。

任何想法?正則表達式是否正確?

+1

我會投票反對這樣的限制。但是我想你犯了一個錯字,你需要使用'^ [a-zA-Z] {1,50} $',[*'{1,50}'匹配字符'{1,50}'' ](https://regex101.com/r/qJ7lK1/1)。 –

+0

Hi Wiktor,感謝您的快速回復。原諒我,但這不是我所知道的嗎?我還有興趣,爲什麼你要投反對票這樣的限制?你能建議一個替代? – Brenketsu

+0

對不起,我明白你的意思是關於{1,50}字面位置匹配。 Appologies。 – Brenketsu

回答

0

再次,傢伙感謝這一個提示。根據Wiktor的建議,我已經解決了實際上對Regex的一個誤解,而不是實際上是一個錯字:S 但是我現在也允許使用非英文字符,例如áé等

^[a-zA-Z -_ '''ÆÐƎƏƐƔIJŊŒẞÞǷȜæðǝəɛɣijŋœĸsßþƿȝĄƁÇĐƊĘĦĮƘŁØƠŞŞŢŢŦŲƯY̨Ƴąɓçđɗęħįƙłøơşşţţŧųưy̨ƴÁÀÂÄǍĂĀÃÅǺĄÆǼǢƁĆĊĈČÇĎḌĐƊÐÉÈĖÊËĚĔĒĘẸƎƏƐĠĜǦĞĢƔáàâäǎăāãåǻąæǽǣɓćċĉčçďḍđɗðéèėêëěĕēęẹǝəɛġĝǧğģɣĤḤĦIÍÌİÎÏǏĬĪĨĮỊIJĴĶƘĹĻŁĽĿ'NŃN̈ŇÑŅŊÓÒÔÖǑŎŌÕŐỌØǾƠŒĥḥħıíìiîïǐĭīĩįịijĵķƙĸĺļłľŀʼnńn̈ňñņŋóòôöǒŏōõőọøǿơœŔŘŖŚŜŠŞŞṢẞŤŢṬŦÞÚÙÛÜǓŬŪŨŰŮŲỤƯẂẀŴẄǷÝỲŶŸȲỸƳŹŻŽẒŕřŗsśŝšşş ßťţṭŧþúùûüǔŭūũűůųụưẃẁŵẅƿýỳŷÿȳỹƴźżžẓ] {1,50} $

這現在工作非常適合我:)。再次感謝Wiktor。

+0

\ w - 匹配任何單詞字符。 –

+0

更好,再次感謝Alex ^^。猜猜我需要花費超過一天或2個正則表達式來理解更多。你是一個紳士。 – Brenketsu