我的视图模型中的某些字符串具有Required
属性,但如果用户在文本区域中键入(是的,空格),则不会捕获。我需要阻止用户提交仅限空格的字符串。
我正在尝试在我的视图模型的属性上使用RegularExpression
属性来验证字符串。我已经看到了一些答案,例如Filtering "whitespace-only" strings in JavaScript或How to validate whitespaces using jquery/ajax in an MVC view,但它们似乎无法正常工作(是的,在您提出要求之前,我省略了前导和尾随/
如果我把它从Javscript带到C#)。这些问题的答案中的示例通常仅针对空白进行验证,或者根本不对空白进行验证。我需要的是至少需要一些文本来验证。只要我也有一些非空白字符串,有一些空格也没问题。
我应该在我的属性中使用什么正则表达式(我对正则表达式不好)来验证一些包含至少某些非空白文本的文本?
答案 0 :(得分:0)
您可以将这些数据注释添加到字符串中:
[Display(Name = "Email")]
[Required(ErrorMessage = "Please enter email address !", AllowEmptyStrings = false)]
public string Email { get; set; }
AllowEmptyStrings = false 部分将阻止您保存空字符串(如空格)
答案 1 :(得分:0)
正则表达式^\s+$
匹配仅包含空格的字符串。
正则表达式\S
匹配包含一些非空格的字符串。
答案 2 :(得分:0)
试试这个词:^\S+$
在http://regexr.com/3cq34进行测试。
答案 3 :(得分:0)
所需的正则表达式为^(.*\S.*)$
。如果还有另一个“真实”字符,这将允许空格。
在属性中,它看起来像。
//using System.ComponentModel.DataAnnotations;
[Required, RegularExpression(@"^(.*\S.*)$")]
public string Name { get; set; }
我尝试首先添加Required(AllowEmptyStrings = false)
并没有成功,但这就是微软所说的。它对我不起作用,但是上面的正则表达式起作用了。