必须包含“数字”,“字母”,“特殊字符”两种以上的正则表达式

 我来答
albumin
2013-09-03 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2387万
展开全部
你说的是至少包含“数字”,“字母”,“特殊字符”中的两种吧
^(((?=.*[0-9])(?=.*[a-zA-Z])|(?=.*[0-9])(?=.*[^\s0-9a-zA-Z])|(?=.*[a-zA-Z])(?=.*[^\s0-9a-zA-Z]))[^\s]+)$
上面的正则表达式假设除了数字,字母,空白符外的字符都是特殊字符,这个正则不允许空白符,必须有“数字”,“字母”,“特殊字符”中的至少两种
如果是两种以上就是说三种字符都必须包含,正则是这样的
^(?i).+(?<=\d.*)(?<=[a-z].*)(?<=[^a-z\s\d].*)$
这个正则可以匹配有空格的字符串
在网络中迷失
推荐于2016-04-20 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:86
采纳率:0%
帮助的人:105万
展开全部
1.本来不想回答的 因为我也没有很好的解法,但是先回答的那个错了
2.这个正则里面的特殊字符只是~!@#$%^&*? 如果不够 自行添加 如果要匹配的文本不是独立的,此正则无效。 匹配的文本必须是一个独立的字符串,不能被包含。因为用到了^$表示字符串的开头和结尾。
正则为(?!^(\d+|[a-zA-Z]+|[~!@#$%^&*?]+)$)^[\w~!@#$%\^&*?]+$
3.以经过测试, 能有效解决你的问题,但是不够简洁。如果有好的解决方案,请私信我,让我也学习下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胡同总头头
2017-05-27 · TA获得超过133个赞
知道小有建树答主
回答量:108
采纳率:0%
帮助的人:59.7万
展开全部

正则匹配数字、字母、指定特殊字符的表达式两种或以上,绝对靠谱!   

// 综合全匹配 限定8-16位

 var ckAll = /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*])[\da-zA-Z~!@#$%^&*]{8,16}$/;

// 包含数字

 var ckNum = /^(?=.*\d)[\da-zA-Z!@#$&_,.?]+$/;

// 包含英文

 var ckEng = /^(?=.*[a-zA-Z])[\da-zA-Z!@#$&_,.?]+$/;

// 包含指定字符!@#$&_,.? 可自定义添加

  var ckChar = /^(?=.*[!@#$&_,.?])[\da-zA-Z!@#$&_,.?]+$/;

不对可以私信我!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
駱威製作所Cc
2013-09-03
知道答主
回答量:5
采纳率:0%
帮助的人:5.5万
展开全部
[0-9a-zA-Z?]{2,}

把?号替换成你允许使用的特殊字符,如[0-9a-zA-Z@#$]{2,}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
败粹家朦枝0r
2018-02-09
知道答主
回答量:41
采纳率:100%
帮助的人:10.9万
展开全部
思路 不能全是上面的三种字符中的其中一种
(?![a-zA-Z]+$) 不能全是字母
(?!\d+$) 不能全是数字
(?![^\x00-\xff]+$) 不能全是特殊字符
组合起来就是 注意 没有空格 复制时小时百度的神秘空格
^(?![a-zA-Z]+$)(?!\d+$)(?![^\x00-\xff]+$).+$
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式