0

我正在使用 ASP.NET RegularExpressionValidator

我需要一个正则表达式来防止填写表格的用户使用全部大写。

例如,如果他们写下自己的名字:

Bob JONES 或 BOB JONES 或 BOB JONES 或其他什么,它不会匹配。

我可以用这个正则表达式匹配所有大写字母:

[A-Z]{2,10}

但是 RegularExpressionValidator 要求我匹配有效文本,而不是无效文本。

4

4 回答 4

2

如果您的目标是让每个单词一次不超过 1 个大写字母,并且假设可以限制为 ASCII 字母,请尝试以下操作:

^(?:[a-z]|[A-Z](?![A-Z])|['-])+$

换句话说,字符串必须完全由小写字母组成,或者由大写字母组成,后跟另一个大写字母。

这适用于单个单词。对于多个单词(如全名、名字和姓氏),只需在交替中添加一个空格:

^(?:[a-z]|[A-Z](?![A-Z])|[\s'-])+$

(编辑以允许使用撇号和连字符标点符号)

于 2012-08-02T20:02:20.320 回答
1

使用这个正则表达式:@"^[^AZ]*$" 它将匹配不包含大写字符的任何内容。

于 2012-08-02T19:57:43.200 回答
0

^[a-z ]+$ 如果你想像使用这个一样捕获名称,请Bob Jones使用这个正则表达式^([A-Z][a-z ]+)+$

于 2012-08-02T20:00:58.657 回答
0

也许我只是在陈述显而易见的事情,但在进行比较之前你不能只到 myVar.string.toLower 吗?

于 2012-08-03T02:03:51.093 回答