正则表达式禁止使用逗号

时间:2014-07-17 13:36:33

标签: c# regex asp.net-mvc-3

我正在尝试禁止输入文本框的字符串中的逗号。以下是我到目前为止的情况:

[RegularExpression (@"?[^,]*$",
        ErrorMessage = "Commas are not allowed in the subtask title. Please remove any and try again")]

这可能是我的第5次或第6次尝试,到目前为止没有任何效果。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:10)

尝试将正则表达式更改为:

"^[^,]+$"

假设我们匹配"Hello, world"

第一个^断言我们在字符串的开头。下一个[^,]是一个字符类,表示“除,之外的任何字符”。 +旁边的东西意味着“匹配一次或多次”。最后,$声称我们现在处于字符串的末尾。

因此,这个正则表达式意味着“在字符串的开头(^),匹配任何不是逗号([^,])的字符一次或多次(+),直到我们到达字符串的末尾($)。

此正则表达式将在"Hello, world"上失败 - Hello的所有内容都可以。 ,直到我们到达逗号 - 此时字符类无法匹配“不是逗号”。

关于正则表达式的一些很棒的教程,你应该阅读http://www.regular-expressions.info/