Html 正则表达式验证问题
我在用电话Html 正则表达式验证问题,html,regex,vb.net,Html,Regex,Vb.net,我在用电话 ^(?=^.{14,30}$)(?=^.[\d]{3}$)(?=^.[a-z]{4}$)(?=^.[A-Z]{5}$)(?=^.[!*&#$%^]{2}).$ 正则表达式,以验证以下最低要求: 四个小写字母 五个大写字母 三位数 两个特殊字符 总长度在14到30个字符之间 但不幸的是,此验证模式无法验证我的字符串。 我已经寻找了regex模式验证,并告诉我该模式是正确的 有人能在这方面给我支持吗请注意,(?=^.[a-z]{4}$)要求匹配5个字符的字符串,其中第一个csn
^(?=^.{14,30}$)(?=^.[\d]{3}$)(?=^.[a-z]{4}$)(?=^.[A-Z]{5}$)(?=^.[!*&#$%^]{2}).$
正则表达式,以验证以下最低要求:
我已经寻找了
regex
模式验证,并告诉我该模式是正确的有人能在这方面给我支持吗
请注意,
(?=^.[a-z]{4}$)
要求匹配5个字符的字符串,其中第一个csn是任意字符,然后必须有4个小写字母。最后,在^
和lookaheads之后,在$
之前有
,因此实际上,整个正则表达式可以匹配单个字符字符串
你可以用
^(?=(?:\D*\d){3})(?=(?:[^a-z]*[a-z]){4})(?=(?:[^A-Z]*[A-Z]){5})(?=(?:[^!*&#$%^]*[!*&#$%^]){2}).{8,30}$
看。A:
详细信息
-字符串的开头^
-任何0+非数字的三次出现,后跟一个数字(?=(?:\D*\D){3})
-四次出现任何0+字符,但小写ASCII字母后跟小写ASCII字母除外(?=(?:[^a-z]*[a-z]){4}
-除大写ASCII字母后接大写ASCII字母外,任何0+字符出现五次(?=(?:[^A-Z]*[A-Z]){5}
-除了某些特定的特殊字符(在字符类中定义)之外,任何0+字符都会出现两次,后跟指定的(?=(?:[^!*$%^]*[!*$%^]){2}
!*$%中的字符^代码>设置
-任何8到30个字符{8,30}
-字符串结束$
与其使用可能难以维护的正则表达式,不如使用一些易于阅读和修改的简单代码:
Private Function IsStringValid(s As String) As Boolean
If (s.Length > 30) OrElse (s.Length < 14) Then
Return False
End If
Dim lower, upper, digit, special As Integer
For Each c As Char In s
Select Case True
Case Char.IsLower(c)
lower += 1
Case Char.IsUpper(c)
upper += 1
Case Char.IsDigit(c)
digit += 1
Case Char.IsSymbol(c) OrElse Char.IsPunctuation(c)
special += 1
End Select
Next
Return (lower >= 4) AndAlso (upper >= 5) AndAlso (digit >= 3) AndAlso (special >= 2)
End Function
私有函数IsStringValid(作为字符串)作为布尔值
如果(s.Length>30)或(s.Length<14),则
返回错误
如果结束
变暗下限、上限、数字、特殊整数
对于每个c作为s中的字符
选择Case True
案例字符孤岛(c)
下限+=1
Case Char.IsUpper(c)
上限+=1
案例特征IsDigit(c)
位数+=1
Case Char.IsSymbol(c)或lse Char.ispunchuation(c)
特殊+=1
结束选择
下一个
返回(下>=4)和ALSO(上>=5)和ALSO(数字>=3)和ALSO(特殊>=2)
端函数
根据您的要求,最小长度必须为14。四个小写字母或至少四个?连续或在任何位置?你的模式一团糟
(?=^.[a-z]{4}$)
要求匹配5个字符的字符串,其中第一个csn为任意字符,然后必须有4个小写字母。最后,在^
和lookaheads之后,在$
之前有
,因此实际上,整个正则表达式可以匹配单个字符字符串。
^(?=(?:.*[A-Z]){5})(?=(?:.*[a-z]){4})(?=(?:.*\d){3})(?=(?:.*[!*&#$%^]){2}).(14,30)$
└───────┬────────┘└───────┬────────┘└──────┬──────┘└─────────┬──────────┘
│ │ │ │
│ │ │ 2 special characters
│ │ │
│ │ 3 digits
│ │
│ 4 lowercase letters
│
5 uppercase letters
Private Function IsStringValid(s As String) As Boolean
If (s.Length > 30) OrElse (s.Length < 14) Then
Return False
End If
Dim lower, upper, digit, special As Integer
For Each c As Char In s
Select Case True
Case Char.IsLower(c)
lower += 1
Case Char.IsUpper(c)
upper += 1
Case Char.IsDigit(c)
digit += 1
Case Char.IsSymbol(c) OrElse Char.IsPunctuation(c)
special += 1
End Select
Next
Return (lower >= 4) AndAlso (upper >= 5) AndAlso (digit >= 3) AndAlso (special >= 2)
End Function