regex - 正则表达式 2 位 10 个字母/位
问题描述
我正在尝试制作正则表达式,但有些东西对我不起作用,要求如下:
- 最小长度为 1
- 最大长度为 12
- 前 2 个符号必须是数字
- 接下来的 10 必须是字母或数字
这是我到目前为止所拥有的
/^[0-9]{0,2}[a-z][A-Z][0-9]{0,10}$/
你们能告诉我我做错了什么吗?
解决方案
您的模式^[0-9]{0,2}[a-z][A-Z][0-9]{0,10}$
在开头匹配 0、1 或 2 位数字。
然后它匹配 2[a-z][A-Z]
个小写字符和一个应该出现在字符串中的大写字符 AZ,并使字符串长度至少为 2 个字符。
您可以将第二个数字设为可选,并对字母或数字使用 1 个字符类别。
长度的最小值为 1,最大值为 12。
^(?!\d[a-zA-Z])\d\d?[a-zA-Z0-9]{0,10}$
^
字符串的开始(?!\d[a-zA-Z])
负前瞻,断言不是数字后跟 a-zA-Z\d\d?
匹配 1 或 2 位数字[a-zA-Z0-9]{0,10}
匹配任何列出范围的 0-10 次重复$
字符串结束
或者@Scratte在评论中建议的没有前瞻的版本,匹配单个数字和可选的第二个数字,然后是列出范围的 0-10 次重复:
^\d(?:\d[A-Za-z\d]{0,10})?$
推荐阅读
- python - 在 Python 上使用 fredapi 导入系列
- html - HTML 视频变为绿色,无法播放。我该如何解决?
- python - Discord.py on_member_join 事件
- node.js - 多个上传提供商 Strapi
- javascript - 如何在页面更改时滚动到向导表单的顶部
- java - 如何在包含特定字符串的文本文件中查找行并用新字符串替换每一行?
- react-native - ReactNative - 警告:无法从不同组件的函数体内更新组件
- wordpress - 功能中的wordpress自定义插件enqueue_script不起作用
- c# - 如何修改 dotnet core EF 5.0 中的“注册用户”方法
- amazon-web-services - gitlab中的Terraform问题