Ran*_*ser 3 c# regex asp.net asp.net-mvc-4
我想要一个正则表达式,允许用户输入以下值.最少四个,最多30个字符和第一个字符应为大写.
例如:约翰,史密斯,安德森,艾玛
我不希望用户输入以下类型的值
Jooohnnnnnn,Smmmmith,Aaaanderson,Emmmmmmmmma
任何人都可以为我提供正则表达式吗?我搜索了一段时间但找不到有效的RegEx.
我需要它为我的ASP.net MVC应用程序模型验证.
谢谢
编辑:我不知道如何检查重复的字符,我只是尝试了以下
@"^[A-Z]{1}[a-zA-Z ]{2,29}$"
我想添加的规则是
1. First character Upper case
2. 4-30 characters
3. No repeats of characters. Not greater than 2
Run Code Online (Sandbox Code Playgroud)
要对您的正则表达式进行检查,您可以使用负向预测:
^(?!.*(.)\1{2})[A-Z][a-zA-Z ]{3,29}$
Run Code Online (Sandbox Code Playgroud)
前瞻(?!...)如果里面有什么它匹配将失败整个正则表达式.
为了寻找重复的模式,我们使用了一个捕获组:(.)\1{2}.我们捕获第一个字符,然后检查它是否后跟(至少)两个相同的字符和反向引用\1.
| 归档时间: |
|
| 查看次数: |
2077 次 |
| 最近记录: |