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