我正在使用 C# 和 .NET 构建用户注册表单。 我需要验证用户输入的密码字段。 验证要求如下。
- 应该是字母数字(a-z、A-Z、0-9)
- 它应该接受 6-10 个字符(最少 6 个字符,最多 10 个字符)
- 至少有 1 个字母和数字(例如:
stack1over
)
我正在使用如下正则表达式。
^([a-zA-Z0-9]{6,10})$
它满足我的前两个条件。 当我只输入字符或数字时失败。
最佳答案
如果可以的话,通过多个正则表达式传递它。它会比那些前瞻性的怪物干净得多:-)
^[a-zA-Z0-9]{6,10}$
[a-zA-Z]
[0-9]
虽然有些人可能认为它很聪明,但没有必要用一个正则表达式做所有(有时甚至用任何正则表达式 - 看看那些想要正则表达式来检测 75 到 75 之间的数字的人吧4093).
您是否愿意看到一些像这样的漂亮干净的代码:
if not checkRegex(str,"^[0-9]+$")
return false
val = string_to_int(str);
return (val >= 75) and (val <= 4093)
或类似的东西:
return checkRegex(str,"^7[5-9]$|^[89][0-9]$|^[1-9][0-9][0-9]$|^[1-3][0-9][0-9][0-9]$|^40[0-8][0-9]$|^409[0-3]$")
我知道我更愿意维护哪一个 :-)
关于c# - 接受字母数字字符(6-10 个字符)的正则表达式 .NET、C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2190376/