c# - 接受字母数字字符(6-10 个字符)的正则表达式 .NET、C#

标签 c# regex char numbers alphanumeric

我正在使用 C# 和 .NET 构建用户注册表单。 我需要验证用户输入的密码字段。 验证要求如下。

  1. 应该是字母数字(a-z、A-Z、0-9)
  2. 它应该接受 6-10 个字符(最少 6 个字符,最多 10 个字符)
  3. 至少有 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/

相关文章:

c# - 使用 HoloToolkit 重现 Hololens 手势教程

c# - 从字符串列表中返回潜在字符串及其下一个字符性能

c++ - 为什么我不能将此正则表达式返回字符串转换为整数或直接转换为整数? (C++)

java - Android 按与 Charcase 无关的姓名查找联系人

c++ - memcpy 和 _CrtlsValidHeapPointer(pUserData)

c# - .net 中各种语言的货币符号

c# - 使用套接字和多个客户端的文件传输

c# - 按长度拆分字符串

Python 3.5 目录的正则表达式匹配

javascript - 如何在不切割单词的情况下将句子拆分为具有最大字符数的句子数组?