Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何编写与不包含所有大写字母的文本匹配的正则表达式?_Asp.net_Regex_Forms_Validation - Fatal编程技术网

Asp.net 如何编写与不包含所有大写字母的文本匹配的正则表达式?

Asp.net 如何编写与不包含所有大写字母的文本匹配的正则表达式?,asp.net,regex,forms,validation,Asp.net,Regex,Forms,Validation,我正在使用ASP.NET RegularExpressionValidator 我需要一个正则表达式来防止填写表单的用户使用所有大写字母 例如,如果他们写下自己的名字: 鲍勃·琼斯或鲍勃·琼斯或鲍勃·琼斯或其他任何人,都不会匹配 我可以使用以下正则表达式匹配所有CAP: [A-Z]{2,10} 但是RegularExpressionValidator要求我匹配有效文本,而不是无效文本。使用此正则表达式:@“^[^A-Z]*$”它将匹配任何不包含大写字符的内容。使用此正则表达式:@“^[^A-Z]

我正在使用ASP.NET RegularExpressionValidator

我需要一个正则表达式来防止填写表单的用户使用所有大写字母

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

鲍勃·琼斯或鲍勃·琼斯或鲍勃·琼斯或其他任何人,都不会匹配

我可以使用以下正则表达式匹配所有CAP:

[A-Z]{2,10}


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

使用此正则表达式:@“^[^A-Z]*$”它将匹配任何不包含大写字符的内容。

使用此正则表达式:@“^[^A-Z]*$”它将匹配任何不包含大写字符的内容。

使用此正则表达式
^[A-Z]+$

如果您想要像Bob Jones这样的捕获名称,请使用此正则表达式
^([A-Z][A-Z]+)+$

使用此正则表达式
^[A-Z]+$

如果您想要像Bob Jones这样的流行名称,请使用此名称。
^([A-Z][A-Z]+)+$
如果您的目标是让每个单词一行中的大写字母不超过1个,并且假设可以限制为ASCII字母,请尝试以下操作:

^(?:[a-z]|[A-Z](?![A-Z])|['-])+$
换句话说,字符串必须完全由小写字母或大写字母组成,后面不跟另一个大写字母

这适用于单个单词。对于多个单词(如全名、第一个和最后一个),只需在替换项中添加空格:

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

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

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

^(?:[a-z]|[A-Z](?![A-Z])|['-])+$
换句话说,字符串必须完全由小写字母或大写字母组成,后面不跟另一个大写字母

这适用于单个单词。对于多个单词(如全名、第一个和最后一个),只需在替换项中添加空格:

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

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

也许我只是在陈述显而易见的内容,但在进行比较之前,您不能只对myVar.string.toLower进行描述吗?

也许我只是在陈述显而易见的内容,但在进行比较之前,您不能只对myVar.string.toLower进行描述吗?

这将是什么语言?名字里可能有什么字母?A-Z以外的语言?以前会是什么语言?名字里可能有什么字母?A-Z以外的内容吗?我认为这不能回答问题。我认为这不能回答问题。OP使用ASP.NET的一部分自动验证表单内容。这样,就可以在配置文件中声明用于验证的正则表达式;无法更改验证实际发生的方式。所以归根结底,要么有一个合适的正则表达式,要么手工编写验证代码,这要繁琐得多。从这个问题上看,OP的要求不是非常清楚,但我想我已经推断出了他/她基本上想要什么。不,因为我不想要所有的小写字母,我只是不想要所有的大写字母。例如,我的姓有两个大写字母,但不在一起,所以我不想删除这些类型的名字。这里有一半的用户喜欢在表单上使用所有的大写字母,所以他们会在fname字段中使用JO-ANN,在lname中使用押韵,或者其他什么。OP使用ASP.NET的一部分来自动验证表单内容,而不是Jo Ann等。这样,就可以在配置文件中声明用于验证的正则表达式;无法更改验证实际发生的方式。所以归根结底,要么有一个合适的正则表达式,要么手工编写验证代码,这要繁琐得多。从这个问题上看,OP的要求不是非常清楚,但我想我已经推断出了他/她基本上想要什么。不,因为我不想要所有的小写字母,我只是不想要所有的大写字母。例如,我的姓有两个大写字母,但不在一起,所以我不想删除这些类型的名字。这里有一半的用户喜欢在表单上使用所有的大写字母,所以他们会在fname字段中使用JO-ANN,在lname中使用押韵,或者其他什么。而不是乔·安等。。