用于测试非空白字符串的正则表达式

时间:2016-02-15 14:27:51

标签: c# regex asp.net-mvc

我的视图模型中的某些字符串具有Required属性,但如果用户在文本区域中键入(是的,空格),则不会捕获。我需要阻止用户提交仅限空格的字符串。

我正在尝试在我的视图模型的属性上使用RegularExpression属性来验证字符串。我已经看到了一些答案,例如Filtering "whitespace-only" strings in JavaScriptHow to validate whitespaces using jquery/ajax in an MVC view,但它们似乎无法正常工作(是的,在您提出要求之前,我省略了前导和尾随/如果我把它从Javscript带到C#)。这些问题的答案中的示例通常仅针对空白进行验证,或者根本不对空白进行验证。我需要的是至少需要一些文本来验证。只要我也有一些非空白字符串,有一些空格也没问题。

我应该在我的属性中使用什么正则表达式(我对正则表达式不好)来验证一些包含至少某些非空白文本的文本?

4 个答案:

答案 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)并没有成功,但这就是微软所说的。它对我不起作用,但是上面的正则表达式起作用了。

相关问题