JavaScript验证字符串是否全部连贯,一般用于验证密码,避免密码过于简单。
1.实现数字是否连贯的验证
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]==-1)){ //等于1代表升序连贯 等于-1代表降序连贯
ncontinuity+=1; //存在连贯:计数+1
};
}
if(ncontinuity>(num.length-2)){
alert("全部连贯");
}else{
alert("不全部连贯"); //最终结果 不全部连贯(5与7之间不连贯)
}
2.实现字母是否连贯的验证
我们无法直接判断字母是否连贯,但是我们知道每一个字母都有一个与之对应的ASCII码,如下图【图片来源于ASCII的百度百科】:字母A对应的是81,B对应的是82...。从图中我们可以看出连贯的字母对应的值也是连贯的,所以我们可以通过ASCII码来判断
利用charCodeAt()函数便可获得字符对应的值 。【JavaScript String.charCodeAt() 函数详解】
var name="ABCDEF"; //需要验证的字符串
var lcontinuity=0; //用于连贯个数的计数
for(var i=1;i<name.length;i++){
if(((name[i].charCodeAt())-(name[i-1].charCodeAt())==1)||((name[i].charCodeAt())-(name[i-1].charCodeAt())==-1)){ //1正序连贯;-1倒序连贯
lcontinuity+=1; //存在连贯:计数+1
};
}
if(lcontinuity>(name.length-2)){//连贯总数=字符串长度-2;代表全部连贯
alert("全部连贯"); //结果:ABCDEF全部连贯
}else{
alert("不全部连贯");
}