javascript - 小写、大写、数字和最少 8 个字符的正则表达式失败
问题描述
我已经查看并找到了很多关于正则表达式的信息。它有很好的记录,但我显然是个白痴,或者已经研究这个问题太久了!
我需要匹配的模式是任意数量的大写、小写和数字,至少有 8 个字符。我不想接受任何其他内容,例如非字母数字字符 (_ *^& 等)
我的努力是
^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])\S{8,}$
可悲的是,当我使用https://regex101.com/时,这与以下任何一项都不匹配
aaaaaaaa
AAAAAAAA
00000000
asdfFDSA167
#fFaf9374A
12345678
123456NBh
其中 2 个是有效的,但我不明白为什么我会遇到问题
最终目标是在(HTML 5 input pattern="" />`)的pattern
属性中使用它input
解决方案
我相信这就是您正在寻找的:^[a-zA-Z0-9]{8,}$
或者也许是这样:^[a-z]{8,}|[A-Z]{8,}|[0-9]{8,}$
第一个将匹配字母/数字的任意组合,第二个将仅匹配相似字符的序列。考虑到这个问题,很难准确地说出你在寻找什么。
编辑:我犯了一个错误,但修复了它
推荐阅读
- css - Angular 没有完全加载样式
- c# - 超链接控件在一个目录中打开一个文件,而不是在另一个目录中打开同一个文件
- mysql - Magento cron 或 mysql 事件调度器哪一个基于性能最好?
- php - 如何检查事件是否已执行?
- android - Flutter 如何使用 AssetBundle 存储和访问文件
- ruby-on-rails - Draft.js 在 Rails 应用程序视图中未显示任何内容
- javascript - Ajax Uncaught TypeError:非法调用
- javascript - 如何在 reactjs 中访问自定义标头
- ruby-on-rails - 在 ruby 中搜索 imagen 的特定 api 对我不起作用
- python - 合并函数不返回合并的数据框