【问题标题】:C# string should not contain only white spaces or any special character except ,.';:" [duplicate]C# 字符串不应仅包含空格或任何特殊字符,除了 ,.';:" [重复]
【发布时间】:2019-02-19 19:00:59
【问题描述】:

我需要一个正则表达式模式来验证字符串不只包含空格(空格只包含多个空格)(例如:" ".length = 4)并且不应包含 !@$#%^&*() 字符.

正则表达式 regex = new Regex(@".\S+."); 这个检查空格。我需要一个正则表达式模式中的两个条件。

   Result
   ---------
  • “”:错误
  • “ad af”:真
  • “asd asd”:真
  • “asdf”:是的
  • “asdf@df dsfs”:假
  • “#”:错误

【问题讨论】:

  • 到目前为止你有什么代码?
  • [RegularExpression(@"^[^~!@#$%&*]+$", ErrorMessage = "给定值不正确")] 。这会检查特殊字符,但我需要检查空格(文本框只包含空格)。
  • 一个正则表达式中的两个条件

标签: c# .net regex model-validation


【解决方案1】:

作为单个正则表达式:

!Regex.IsMatch(input, "^\s+$|[!@$#%^&*()]");

这意味着:

^\s+$        //Is entirely composed of one or more whitespace characters 
|            //OR
[!@$#%^&*()] //Contains any one of the given special characters

此正则表达式返回与您想要的事实相反的内容(即,它查找所有都是空格或确实包含特殊字符的任何内容),因此我们不使用 ! 来满足您的要求

【讨论】:

  • 我在 .net MVC 模型中的 RegularExpression[RegexPattern] 注释中需要。因此,如果条件不满足,我需要一个返回 false 的模式。不能用 ! 给出 NOT。
【解决方案2】:

如果您正在寻找“只有字母之间有空格”的正则表达式,您可以使用:

[a-zA-Z][a-zA-Z ]+

如果你想允许,数字也可以, 使用这个:

[a-zA-Z0-9][a-zA-Z0-9 ]+

【讨论】:

    猜你喜欢
    • 2015-01-13
    • 1970-01-01
    • 2020-12-25
    • 2016-01-05
    • 2014-05-20
    • 2021-10-16
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多