【问题标题】:Entity Framework Regex Mismatch实体框架正则表达式不匹配
【发布时间】:2016-07-28 12:08:58
【问题描述】:

大家好,我目前正在整理一个简单的 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; }

我已经在一些在线计算器中测试了 Regex 语句,它们告诉我这是正确的,但是在测试表单时总是出现不匹配。

有什么想法吗?正则表达式是否正确?

【问题讨论】:

  • 我会投票反对这样的限制。但我猜你打错了,你需要使用^[a-zA-Z]{1,50}${1, 50} matches the characters {1, 50} literally
  • 您好 Wiktor,感谢您的快速回复。原谅我,但这不是我已经拥有的吗?我也很感兴趣,为什么你会投票反对这样的限制?你能推荐一个替代品吗?
  • 对不起,我明白你所说的 {1, 50} 是字面位置匹配的意思。应用。
  • 看看维克托斯姓...
  • 啊,好的,好的^^ ..感谢大家的快速回复。

标签: c# regex asp.net-mvc entity-framework


【解决方案1】:

再次感谢大家提供的提示。根据 Wiktor 的建议,我已经修正了对 Regex 的误解,而不是错字:S 但我现在也允许使用非英文字符,例如 á é 等

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

这对我来说很完美:)。再次感谢维克托。

【讨论】:

  • \w - 匹配任何单词字符。
  • 更好,再次感谢 Alex^^。猜猜我需要花一两天以上的时间使用正则表达式字符串来了解更多信息。你的绅士。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-23
  • 2021-10-29
  • 1970-01-01
相关资源
最近更新 更多