如何使用正则表达式确保字符串不包含冒号?

时间:2012-02-13 23:46:59

标签: c# regex

我在c#中编写验证正则表达式 - 基本上需要确保该属性中没有“:”。我是regex的新手。这就是我所拥有的,它似乎无法工作..我读了关于正则表达式的初学者常见问题,这就是我提出的"[^:]"

[StringLengthVerifier(MaxValue = 25, IsRequired = true, ErrorMessageResourceName = "MEMUser_UserName")]
        [RegexVerifier("User Name", @"[^:]", ErrorMessage = "User name cannot contain colons")]
        public string UserName { get; set; }

2 个答案:

答案 0 :(得分:3)

用字符串/行边界元字符括起字符类:

^[^:]*$

并使用正确的正则表达式模式使它们匹配字符串的开头/结尾。

或者使用

\A[^:]*\Z

(假设C#正则表达式支持它们)。

答案 1 :(得分:1)

不要使用正则表达式。由于您只想检查是否存在冒号字符,只需确保

即可
UserName.Contains(":")

评估为false。有关String.Contains的解释,请参阅MSDN