• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

js 正则之 判断密码类型_js

javascript 搞代码 7年前 (2018-06-13) 116次浏览 已收录 0个评论

今天没啥写的,就分享个思路吧。
之前在群里讨论的时候,谢亮兄弟说判断密码是否是纯数字,纯字母之类的。
如果用 if 或者 switch 写看着确实蛋疼,如果有 7, 8 条判断,那就老长一大段了。
这个思路是我之前看 jquery 源码的时候学到的,感觉用在这也不错。
先来看代码吧。

function test(str, re, msg) {
    var ret = str.match(re /^(/d+)$^([a-zA-Z]+)$^([a-zA-Z].+)$^([0-9a-zA-Z]+)$^([/s/S]+)$/);
    var msg = msg ["", "纯数字", "纯字母", "字母开头+任意字符", "数字+字母任意组合", "未分类"];
    var i = 0;
    while (ret[++i] === undefined);
    return msg[i];
}

console.log(test("123"));
console.log(test("sss"));
console.log(test("123xx"));
console.log(test("a123xx"));
console.log(test("%$#@"));

可以看到利用一个正则和一个数组就完成了效验。
其实思路很简单,利用了正则的捕获组来对应数组里的字符。
/^(/d+)$^([a-zA-Z]+)$^([a-zA-Z].+)$^([0-9a-zA-Z]+)$^([/s/S]+)$/
可以拆分为

 /^(/d+)$/ 对应 "纯数字"
 /^([a-zA-Z]+)$/ 对应 "纯字母"
 /^([a-zA-Z].+)$/ 对应 "字母开头+任意字符"
 /^([0-9a-zA-Z]+)$/ 对应 "数字+字母任意组合"
 /^([/s/S]+)$/ 对应 "未分类"

如果对应的捕获组捕获到了,对应的分组下就会有值,如果没捕获到就会是 undefined
所以我们直接从 1 开始遍历结果集就可以得知是什么类型的了。

欢迎大家阅读js 正则之 判断密码类型_js》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:js 正则之 判断密码类型_js
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址