添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

1.不允许出现3位或3位以上同样或连续数字(递增或递减);
2.不允许出现3位或3位以上同样或连续字母(递增或递减);
3.不允许出现3位或3位以上同一个特殊符号;

实现:javascript(正则实现)

codeType:0数字,1字母 function createRegexStr(codeType){ var result=''; var items=[]; var i=(codeType===0)?0:65; var max=(codeType===0)?8:89; for(;i<max;i++){ var item=[]; item.push((codeType===0)?i:String.fromCharCode(i)); for(var j=1;j<=2;j++){ item.push((codeType===0)?(i+j):(String.fromCharCode(i+j))); items.push(item.join('')); items.push(item.reverse().join('')); result+=items.join("|"); result="(?:"+result+")"; return result; function check(str){ var regexStr="^(?!.*([!-~])\\1{2,})"; regexStr+="(?!.*"+createRegexStr(0)+")"; regexStr+="(?!.*"+createRegexStr(1)+")"; regexStr+=".+$"; var regex=new RegExp(regexStr,"i"); return regex.test(str);

生成的正则:

/^(?!.*([!-~])\1{2,})(?!.*(?:012|210|123|321|234|432|345|543|456|654|567|765|678|876|789|987))(?!.*(?:ABC|CBA|BCD|DCB|CDE|EDC|DEF|FED|EFG|GFE|FGH|HGF|GHI|IHG|HIJ|JIH|IJK|KJI|JKL|LKJ|KLM|MLK|LMN|NML|MNO|ONM|NOP|PON|OPQ|QPO|PQR|RQP|QRS|SRQ|RST|TSR|STU|UTS|TUV|VUT|UVW|WVU|VWX|XWV|WXY|YXW|XYZ|ZYX)).+$/i

实现思路:枚举。主要是正则对于匹配递增和递减数字和字母不好处理,可以考虑其他高效率的方法。

/^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*])[\da-zA-Z~!@#$%^&*]{8,}$/ 这里主要用到了 js 正则 表式中的正向前瞻 ?=,举个例子 /\d/.exec( ‘abc2abc’ ) 匹配结果为2,释义:匹配一个 数字 /\d(?=a)/.exec( ‘abc2abc’ ) 匹配结果为2,释义:匹配一个 数字 ,但是这个 数字 后面必须跟着 字母 a class A {//切割 字符串 String [ ] strs = str . split(" ");//定义前一个数的指针 int lastNumber = Integer . MIN_VALUE;//判断 字符串 数字 if(isNumeric(s)) {//定义后一个数的指针 int number = Integer . parseInt(s);} //为下一轮循环做准备 lastNumber = number;} } // 数字 是升序的 return true; var num="123457"; //需要验证的 字符串 var ncontinuity=0; //用于连续个数的统计 for(var i=1;i<num.length;i++){ if((num[i]-num[i-1]==1)||(num[i]-num[i-1]==-... // 匹配 中文、空格、0-9 a-f、相邻两数相同、顺增(4位)、顺降(4位) let val = newValue.toString().replace(/^[\u4E00-\u9FA5]{1,5}$/g, '') let val = newValue.toString().replace(/\s+/g, '... 如果需要反复给 数字 变量添加或减去1,可以使用 递增 (++)和 递减 ( -- )运算符来完成。 在 JavaScript 中, 递增 (++)和 递减 ( -- )既可以放在变量. I have this text with numbers:My numbers are 04, and 0005My numbers are 05, and 0006My numbers are 06, and 0035My numbers are 07, and 0007My numbers are 08, and 0009This is the code I always used to i...