数据注释不允许只有数字字符串 ASP.NET MVC C#

data annotation disallowing numbers only strings ASP.NET MVC C#

如何创建仅允许包含字母和数字或仅包含字母的字符串的数据注释。

基本上不允许只有数字字符串。

现在,我只有一个字母验证,但如果字符串中存在字母,我无法找到如何也允许数字。

[RegularExpression(@"^[a-zA-Z]+$", ErrorMessage = "No numbers allowed in the sequence.")]

谢谢!

编辑 - 找到解决方案!

基本:

[0-9]*[A-z ]+[0-9]*

这个正则表达式 几乎 完美...

如果用户输入纯数字字符串,它会捕获错误,但是... 如果他添加一个 space,他就可以摆脱字符串。

为了防止这个小错误,我只是从我的控制器中捕获我的 POST 方法中的任何空 spaces 并将错误添加到 ModelState。

感谢@PhillipBetts 的 Regex 101 link,帮助我解决了这个问题!

您应该使用正则表达式尝试 String contains 方法

https://msdn.microsoft.com/de-de/library/dy85x1sa(v=vs.110).aspx

我认为最简单的方法是将正则表达式更改为 \D 以指示至少有一个非数字。

有大量资源可用于测试和学习正则表达式。我最喜欢的Regex 101

它还有一个库,您可以搜索并找到有用的正则表达式。它还提供了一个方便的解释。

无论如何,希望这就是您要找的东西:

^[\w ]+$