84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
1、 用户名可使用英文字母、数字、汉字和下划线的任意组合,其中字母不区分大小写;
2、 用户名长度在6到12个字符之间;
3、 用户名特殊字符仅支持下划线 — ,不支持其他特殊字符及空格符;
4、 用户昵称不能设置为连续相同的字母或数字及连续升降排列的字母或数字;
5、 建议以字母和数字组合,仅六位到八位的昵称不支持设为纯数字;
1、 用户名可使用英文字母、数字、汉字和下划线的任意组合,其中字母不区分大小写; 2、 用户名长度在6到12个字符之间; 3、 用户名特殊字符仅支持下划线 — ,不支持其他特殊字符及空格符;
^[\w\u4e00-\u9fa5]{6,12}$
^(?!([\w\u4e00-\u9fa5])\1+$) //不能设置为连续相同的字母或数字
连续升降排列的字母或数字,这个要求用正则很难写,另外写个函数比较方便。
连续升降排列的字母或数字
^(?!\d{6,8}$) //仅六位到八位的昵称不支持设为纯数字
合并:
^(?!([\w\u4e00-\u9fa5])\1+$)(?!\d{6,8}$)[\w\u4e00-\u9fa5]{6,12}$
简化:
/^(?!(.)\1+$)(?!\d{6,8}$)[\w\u4e00-\u9fa5]{6,12}$/
is_equal_diff = function(s){ len = s.length if (len<2) return false arr = Array.prototype.map.call(s, function(x){return x.charCodeAt()}) dif = arr[1] - arr[0] for(i=2; i<len; i++){ if (arr[i]-arr[i-1] != dif) return false } return true }
is_equal_diff('acegi') //true
连续升降排列的字母或数字,这个正则比较困难吧,写出来不得一大堆啊,有限状态机了都。或许直接写个方法来的更爽快。
除此之外到可以都满足
var reg = /^(?![a-z]+$)(?!\d+$)[a-z|\d|\u4e00-\u9fa5|\_]{6,12}$/i; var test = ['1234567', 'aaabbbcccAA', '123456aa!', '123456aaabbbc', '1234aA汉字_']; test.forEach(v => console.log(v, reg.test(v)));
我觉得这些要求不是一个或者一组正则表达式可以解决的,干嘛一定要用正则表达式呢,写个函数不行吗?
could consider something behind this: http://www.passwordmeter.com/chkPass method located in pwdmeter.js
chkPass
pwdmeter.js
连续升降排列的字母或数字
,这个要求用正则很难写,另外写个函数比较方便。合并:
简化:
连续升降排列的字母或数字
连续升降排列的字母或数字,这个正则比较困难吧,写出来不得一大堆啊,有限状态机了都。
或许直接写个方法来的更爽快。
除此之外到可以都满足
我觉得这些要求不是一个或者一组正则表达式可以解决的,干嘛一定要用正则表达式呢,写个函数不行吗?
could consider something behind this: http://www.passwordmeter.com/
chkPass
method located inpwdmeter.js