首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >至少有一个字符的字母数字

至少有一个字符的字母数字
EN

Stack Overflow用户
提问于 2009-12-21 15:25:58
回答 5查看 4.4K关注 0票数 0

好的,我终于明白了,我需要以下几点:

因此正则表达式必须执行:

  1. 字母数字
  2. 至少有一个字母
  3. 必须有4到8个字符(一个字母/数字)。

即字母数字字符串,必须至少有一个字母,长度在4-8之间。(所以不可能只是所有的数字或所有的字母)。

所有这些都能在一个单一的正则表达式中完成吗?

EN

回答 5

Stack Overflow用户

发布于 2009-12-21 15:32:23

我假设你是指字母数字,至少有一个字母,4到8个字符长。

试试这个:

代码语言:javascript
复制
(?=.*[a-zA-Z])[a-zA-Z0-9]{4,8}
  • (?= -我们使用的是前瞻,所以我们可以在不影响比赛其余部分的情况下进行检查
  • .*[a-zA-Z] -匹配任何后面的字母,即检查我们至少有一个字母
  • [a-zA-Z0-9]{4,8} -这将匹配一个字母或数字4到8次。

然而,您说其意图是“它不能仅仅是所有数字或所有字母”,但是要求1、2和3并不能实现这一点,因为它可以是所有字母并满足所有三个要求。您可能需要这样做,通过额外的前瞻性来确认至少有一个数字:

代码语言:javascript
复制
(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]{4,8}

a-zA-Z的使用并不是很友好,所以如果在正则表达式中可用,那么使用“信函”的转义代码可能会更好。

另外,我希望这与可接受的密码不匹配,因为4个字符可能不够长。

票数 11
EN

Stack Overflow用户

发布于 2009-12-21 15:28:16

第二条和第三条似乎相互矛盾。以下将匹配4到8之间的字母数字:

代码语言:javascript
复制
/[0-9a-zA-Z]{4,8}/
票数 1
EN

Stack Overflow用户

发布于 2009-12-21 15:35:31

代码语言:javascript
复制
?Regex.IsMatch("sdf", "(?=.+[a-zA-Z])[a-zA-Z0-9]{4,8}")
false
?Regex.IsMatch("sdfd", "(?=.+[a-zA-Z])[a-zA-Z0-9]{4,8}")
true
?Regex.IsMatch("1234", "(?=.+[a-zA-Z])[a-zA-Z0-9]{4,8}")
false

对**.*.+发出警告

代码语言:javascript
复制
// At least one letter does not match with .*
?Regex.IsMatch("1111", "(?=.*[a-zA-Z])[a-zA-Z0-9]{4,8}")
false

?Regex.IsMatch("1aaa", "(?=.+[a-zA-Z])[a-zA-Z0-9]{4,8}")
true
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1940729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档