我正在使用ASP.NET RegularExpressionValidator
我需要一个正则表达式来防止填写表单的用户使用所有大写字母。
例如,如果他们写下自己的名字:
鲍勃·琼斯、鲍勃·琼斯或鲍勃·琼斯等等,都不会匹配。
我可以用这个正则表达式匹配所有的大写字母:
[A-Z]{2,10}
但是RegularExpressionValidator要求我匹配有效文本,而不是无效文本。
如果你的目标是让每个单词一行中的大写字母不超过1个,并且假设可以限制为ASCII字母,那么试试这样的方法:
^(?:[a-z]|[A-Z](?![A-Z])|['-])+$
换言之,字符串必须完全由小写字母组成,或者由不后跟另一个大写字母的大写字母组成。
这适用于单个单词。对于多个单词(如全名、第一个和最后一个),只需在交替处添加一个空格:
^(?:[a-z]|[A-Z](?![A-Z])|[s'-])+$
(编辑后允许使用撇号和连字符标点)
使用此Regex:@"^[^A-Z]*$"它将匹配任何不包含大写字符的内容。
使用此正则表达式^[a-z ]+$
如果您想要像Bob Jones
这样的捕获名称,请使用这一个^([A-Z][a-z ]+)+$
也许我只是在陈述显而易见的东西,但在进行比较之前,你不能只访问myVar.string.toLower吗?