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...