大佬们,问个正则

2020-08-11 21:01:35 +08:00
 EminemW

要满足以下两个条件,只过一遍正则,有可能实现吗 1.字母数字组合超过 5 位 2.纯数字超过 5 位

1523 次点击
所在节点    问与答
20 条回复
teawithlife
2020-08-11 21:27:16 +08:00
虽然我很想试着帮你,但是奈何看不懂你的要求。。。
EminemW
2020-08-11 21:38:47 +08:00
@teawithlife 要匹配 字母数字或者纯数字 超过 5 位
oneisall8955
2020-08-11 21:48:18 +08:00
加个或条件?
kokutou
2020-08-11 21:52:44 +08:00
|
wunonglin
2020-08-11 21:55:48 +08:00
if else
Keanuo
2020-08-11 21:56:01 +08:00
/^[\da-zA-Z]{5,}$/
Keanuo
2020-08-11 21:57:26 +08:00
试试这个吧 /^[\da-zA-Z]{5,}$/
xiandao7997
2020-08-11 22:00:08 +08:00
满足 1 就行了吧,2 是 1 的子集,7 楼的应该可以
lululau
2020-08-11 22:01:29 +08:00
@Keanuo 你这个应该会匹配到 “12345” 这样没有超过 5 位的,花括号里的 5 应该改成 6 才对
Keanuo
2020-08-11 22:24:52 +08:00
@lululau 啊确实 刚才写的时候想着是大于等于来着😂
LifStge
2020-08-11 22:26:54 +08:00
@EminemW 楼主的描述 是不是还有排除纯字母的需求呢
@xiandao7997
Keanuo
2020-08-11 22:44:19 +08:00
@LifStge
/^(?=.*[\d]+)([a-zA-Z0-9]{6,})|([\d]{6,})$/
排除纯字母的话,这个应该可以
lululau
2020-08-11 22:46:02 +08:00
/^(?!^[a-zA-Z]+$)[\da-zA-Z]{6,}$/
Keanuo
2020-08-11 22:47:51 +08:00
@lululau 哈哈你这个才是正解
EminemW
2020-08-11 23:29:29 +08:00
@Keanuo #12 这个没办法提取这个例子中的 字母数字组合 "这是我的 xxx 东西 sq1234556789"
Keanuo
2020-08-12 00:06:00 +08:00
@EminemW 那你把开头符^和结尾符$删掉就行吧
LifStge
2020-08-12 00:08:31 +08:00
@EminemW #15 你这个匹配 是要搜索 搜索的话 注意去掉正则表达式的 开头^ 结尾$ 认真去看看正在表达式的文档吧。。。 这个是基础
EminemW
2020-08-12 00:11:59 +08:00
@LifStge #17 去掉之后又没有排除纯字母了
LifStge
2020-08-12 00:13:27 +08:00
@EminemW 还有个重要的问题是 你需求表达的都不清楚。。。 真不确定前面几个 是否符合需求。。
比如是否要排除纯字母 字母数字组合是哪种形式呢 比如几种情况 aaaa2222 2222aaaa 2aa2aa2 aa22aa2
...... 问问题也要表达清楚啊。。。
LifStge
2020-08-12 00:25:40 +08:00
@EminemW 具体不清楚你的情况 #12 楼的 是没问题的 (?=.*[\d]+)([a-zA-Z0-9]{6,})|([\d]{6,}) 不知道你用啥测试的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/697497

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX