84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
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