Post Jobs

js密码强度校验,js数组常见操作及数组与字符串相互转化实例详解

本文实例讲述了js数组常见操作及数组与字符串相互转化方法。分享给大家供大家参考,具体如下:

本文实例讲述了JS截取与分割字符串的常用方法。分享给大家供大家参考,具体如下:

现在很多论坛和博客都在用户注册时添加了验证密码强度的功能,在以前的文章中,我们曾经给出过一段检验密码强度的例子,今天再看一个与《js密码强度校验》的代码。

数组与字符串的相互转化

JS截取字符串可使用 substring()或者slice()
 
函数:substring()

效果:

<script type="text/javascript">
var obj="new1abcdefg".replace(/(.)(?=[^$])/g,"$1,").split(",");
//字符串转化为数组
var obj2 = "new2abcdefg".split("");  //字符串转化为数组
alert(obj);
alert(obj.length);
alert(obj instanceof Array);
alert(obj.join("")); //数组转化为字符串
</script>

定义:substring(start,end)表示从start到end之间的字符串,包括start位置的字符但是不包括end位置的字符。

图片 1

js数组的常见操作

功能:字符串截取,比如想从”MinidxSearchEngine”中得到”Minidx”就要用到substring(0,6)

<html>
<head>
<script language="javascript">
//CharMode函数
//测试某个字符是属于哪一类.
function CharMode(iN){
 if (iN>=48 && iN <=57) //数字
 return 1;
 if (iN>=65 && iN <=90) //大写字母
 return 2;
 if (iN>=97 && iN <=122) //小写
 return 4;
 else
 return 8; //特殊字符
}
//bitTotal函数
//计算出当前密码当中一共有多少种模式
function bitTotal(num){
 modes=0;
 for (i=0;i<4;i++){
 if (num & 1) modes++;
 num /= 2;
 }
 return modes;
}
//checkStrong函数
//返回密码的强度级别
function checkStrong(sPW){
 if (sPW.length<=4)
 return 0; //密码太短
 Modes=0;
 for (i=0;i<sPW.length;i++){
 //测试每一个字符的类别并统计一共有多少种模式.
 Modes|=CharMode(sPW.charCodeAt(i));
 }
 return bitTotal(Modes);
}
//pwStrength函数
//当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色
function pwStrength(pwd){
 O_color="#eeeeee";
 L_color="#FF0000";
 M_color="#FF9900";
 H_color="#33CC00";
 if (pwd==null||pwd==''){
 Lcolor=Mcolor=Hcolor=O_color;
 }else{
 S_level=checkStrong(pwd);
 switch(S_level) {
 case 0:
 Lcolor=Mcolor=Hcolor=O_color;
 case 1:
 Lcolor=L_color;
 Mcolor=Hcolor=O_color;
 break;
 case 2:
 Lcolor=Mcolor=M_color;
 Hcolor=O_color;
 break;
 default:
 Lcolor=Mcolor=Hcolor=H_color;
 }
 } 
 document.getElementById("strength_L").style.background=Lcolor;
 document.getElementById("strength_M").style.background=Mcolor;
 document.getElementById("strength_H").style.background=Hcolor;
}
</script>

</head>

<body>

<form>
输入密码:<input type="password" size="10" onKeyUp="pwStrength(this.value)" onBlur="pwStrength(this.value)">
<br>密码强度:
 <table width="217" border="1" cellspacing="0" cellpadding="1" bordercolor="#cccccc" height="20">
 <tr align="center" bgcolor="#eeeeee">
 <td width="33%" id="strength_L">弱</td>
 <td width="33%" id="strength_M">中</td>
 <td width="33%" id="strength_H">强</td>
 </tr>
 </table>
</form>

</body>
</html>

1、数组的创建

例子:

以上就是为大家分享的js密码强度校验的全部代码,希望对大家的学习有所帮助。

var arrayObj = new Array(); //创建一个数组
var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值
var src="images/off_1.png";
alert(src.substring(7,10));
//弹出值为:off

您可能感兴趣的文章:

  • JS
    密码强度验证(兼容IE,火狐,谷歌)
  • js检验密码强度(低中高)附图
  • Js密码强度实时验证代码
  • javascript密码强度校验代码(两种方法)
  • JavaScript
    密码强度判断代码
  • js检测用户输入密码强度
  • js密码强度实时检测代码
  • JavaScript判断密码强度(自写代码)
  • javascript实现密码强度显示
  • js实现密码强度检测【附示例】
  • js正则表达式验证密码强度【推荐】
  • js密码强度检测
  • JavaScript动态检验密码强度的实现方法
  • JS实现的四级密码强度检测功能示例

要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。

函数:substr()

2、数组的元素的访问

定义:substr(start,length)表示从start位置开始,截取length长度的字符串。

var testGetArrValue=arrayObj[1]; //获取数组的元素值
arrayObj[1]= "这是新值"; //给数组元素赋予新的值

功能:字符串截取

3、数组元素的添加

例子:

arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。
var src="images/off_1.png";
alert(src.substr(7,3));
//弹出值为:off

4、数组元素的删除

函数:split()

arrayObj.pop(); //移除最后一个元素并返回该元素值
arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移
arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素

功能:使用一个指定的分隔符把一个字符串分割存储到数组

5、数组的截取和合并

例子:

arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制
start 之后的所有元素
arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组
str="jpg|bmp|gif|ico|png";
arr=theString.split("|");
//arr是一个包含字符值"jpg"、"bmp"、"gif"、"ico"和"png"的数组

6、数组的拷贝

函数:Join()

arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向
arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向

功能:使用您选择的分隔符将一个数组合并为一个字符串

7、数组元素的排序

例子:

arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址
arrayObj.sort(); //对数组元素排序,返回数组地址
var delimitedString=myArray.join(delimiter);
var myList=new Array("jpg","bmp","gif","ico","png");
var portableList=myList.join("|");
//结果是jpg|bmp|gif|ico|png

8、数组元素的字符串化

函数:indexOf()

arrayObj.join(separator);
//返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator
隔开。

功能:返回字符串中匹配子串的第一个字符的下标

toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用

var myString="JavaScript";
var w=myString.indexOf("v");w will be 2
var x=myString.indexOf("S");x will be 4
var y=myString.indexOf("Script");y will also be 4
var z=myString.indexOf("key");z will be -1 

二、数组对象的3个属性

函数:lastIndexOf()

1、length 属性

定义:lastIndexOf()方法返回从右向左出现某个字符或字符串的首个字符索引值(与indexOf相反)

Length属性表示数组的长度,即其中元素的个数。因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-1。和其他大多数语言不同的是,JavaScript数组的length属性是可变的,这一点需要特别注意。当length属性被设置得更大时,整个数组的状态事实上不会发生变化,仅仅是length属性变大;当length属性被设置得比原来小时,则原先数组中索引大于或等于length的元素的值全部被丢失。下面是演示改变length属性的例子:

功能:返回字符串索引值

var arr=[12,23,5,3,25,98,76,54,56,76];
//定义了一个包含10个数字的数组
alert(arr.length); //显示数组的长度10
arr.length=12; //增大数组的长度
alert(arr.length); //显示数组的长度已经变为12
alert(arr[8]); //显示第9个元素的值,为56
arr.length=5; //将数组的长度减少到5,索引等于或超过5的元素被丢弃
alert(arr[8]); //显示第9个元素已经变为"undefined"
arr.length=10; //将数组长度恢复为10
alert(arr[8]); //虽然长度被恢复为10,但第9个元素却无法收回,显示"undefined"

例子:

由上面的代码我们可以清楚的看到length属性的性质。但length对象不仅可以显式的设置,它也有可能被隐式修改。

var src="images/off_1.png";
alert(src.lastIndexOf('/'));
alert(src.lastIndexOf('g'));
//弹出值依次为:6,15

JavaScript中可以使用一个未声明过的变量,同样,也可以使用一个未定义的数组元素(指索引超过或等于length的元素),这时,length属性的值将被设置为所使用元素索引的值加1。例如下面的代码:

补充:substr 和 substring方法的区别

var arr=[12,23,5,3,25,98,76,54,56,76];
alert(arr.length);
arr[15]=34;
alert(arr.length);

substr 方法

代码中同样是先定义了一个包含10个数字的数组,通过alert语句可以看出其长度为10。随后使用了索引为15的元素,将其赋值为15,即
arr[15]=34,这时再用alert语句输出数组的长度,得到的是16。无论如何,对于习惯于强类型编程的开发人员来说,这是一个很令人惊讶的特性。事实上,使用new
Array()形式创建的数组,其初始长度就是为0,正是对其中未定义元素的操作,才使数组的长度发生变化。

返回一个从指定位置开始的指定长度的子字符串。

由上面的介绍可以看到,length属性是如此的神奇,利用它可以方便的增加或者减少数组的容量。因此对length属性的深入了解,有助于在开发过程中灵活运用。

stringvar.substr(start [, length ])

2、prototype 属性

参数

返回对象类型原型的引用。prototype 属性是 object 共有的。

stringvar

objectName.prototype

必选项。要提取子字符串的字符串文字或 String 对象。

objectName 参数是object对象的名称。

start

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图