我正在使用ASP.NET RegularExpressionValidator
我需要一个正则表达式来阻止填写表单的用户使用全部大写字母。
例如,如果他们写下自己的名字:
Bob JONES或BOB JONES或BOB JOnes或其他什么,它将不匹配。
我可以使用此正则表达式匹配所有大写字母:
[A-Z]{2,10}
但是RegularExpressionValidator要求我匹配有效的文本,而不是无效的文本。
答案 0 :(得分:2)
如果您的目标是让每个单词一次连续不超过1个大写字母,并且假设可以限制为ASCII字母,请尝试以下操作:
^(?:[a-z]|[A-Z](?![A-Z])|['-])+$
换句话说,字符串必须完全由小写字母或大写字母组成,后面跟不是另一个大写字母。
这适用于单个单词。对于多个单词(如全名,第一个和最后一个),只需在交替中添加一个空格:
^(?:[a-z]|[A-Z](?![A-Z])|[\s'-])+$
(编辑为允许撇号和连字符标点符号)
答案 1 :(得分:1)
使用此正则表达式:@" ^ [^ A-Z] * $"它将匹配任何不包含大写字符的内容。
答案 2 :(得分:0)
使用此正则表达式^[a-z ]+$
如果你想要像Bob Jones
这样的抓住名称使用这个^([A-Z][a-z ]+)+$
答案 3 :(得分:0)
也许我只是说明显了,但是在做比较之前你不能只对myVar.string.toLower说明吗?