JavaScript Class 2
学习内容:
1.数据类型转换:
(a)通过 + 或者tostring转化字符串
1 <script> 2 var x = 2; 3 var y = "5"; 4 var a = x+y; 5 alert(x+y);//输出字符串25,只有数值之间相加才会输出数值 6 var z = x.toString(); 7 alert(z); 8 </script>
PS: +运算符的多态: 在执行数值相加时,得到的是数字,在执行数值与字符串相加时,得到的是字符串。
(b)parseInt 其他类型转化为整型
1 <script> 2 var b = 3.14; 3 var c = parseInt(b);//浮点转整型 4 alert(c); 5 </script>
(c)parseFloat 其他类型转化为浮点型
1 <script> 2 var d = 4; 3 var e = parseFloat(d);//整型转浮点 4 alert(e); 5 </script>
(d)字符串强转数值
<script> var f = "yes";
var g = "123"; alert(parseInt(f));//返回NaN 即 not a number 字母无法强转数值
alert(parseInt(g));//返回123
</script>
2.字符串常用操作:
1 <script> 2 var str = "who is your daddy"; 3 alert(str.length);//返回字符串长度,含空格 4 alert(str.charAt(4));//获取字符串特定索引处的字符,注意,不算空格 5 alert(str.toUpperCase());//全部转为大写,toLowerCase 6 alert(str.indexOf("a"));//返回字符下标位置,从0开始,注意加双引号,否则返回-1 7 alert(str.indexOf("d",13));//从第13位开始第一次出现d的下标位置 8 alert(str.lastIndexOf("d"));//字符出现的最后一个下标位置 9 alert(str.substring(4));//从第四位开始截取的字符串 10 alert(str.substring(4,15));//从第4位截取到15位 11 alert(str.slice(4));//效果同substring 12 alert(str.replace("o","a"));//字符串替换 13 alert(str.match("f"));//匹配得到显示,匹配不到返回null 14 alert(str.search("f"));//搜索并返回下标位置,没有返回-1 15 var m = "5.5"; 16 var n = 2; 17 alert(m-n);//数学运算 - * / 字符串自动转换为数字,只有运算功能 18 alert(parseFloat(m)+n);//输出7.5 字符串转浮点
</script>
3.正则表达式:
正则表达式是对字符串操作的一种逻辑公式,
就是用事先定义好的一些特定字符、及这些特定字符的组合,
组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
可用于表单检测,验证码检测等。
(a)声明正则表达式的两种方式:
1 <script> 2 var reg1 = /pattern/;//pattern是规则 3 var reg2 = new RegExp("pattern"); 4 </script>
(b)正则表达式的两种常用方法:
(1)test()检索字符串中的指定值。返回值是 true 或 false。
(2)exec()检索字符串中的指定值。返回值是被找到的值,如果没有发现匹配,则返回 null。
1 <script> 2 var p1 = new RegExp("h"); 3 var s = "hello world"; 4 alert(p1.test(s));//返回true 5 alert(p1.exec(s));//返回h 6 </script>
(3)常用通配符:
. 匹配所有字符
\d 匹配 0-9 \D 匹配非数字
\s匹配所有空白符,包括空格、制表符、换行符、回车符等
\S匹配所有非空白字符
\w匹配所有单词字符,包括0-9数字、26个英文字母和下划线
\W匹配所有非单词字符
\b匹配单词边界 \B匹配非单词边界
[abc]查找方括号之间的任何字符
[^abc]查找任何不在方括号之间的字符
[0-9]查找0-9之间的数字
[a-z]查找a-z之间的小写字母
[A-Z]大写A-Z [A-z]大写A到小写z,既涵盖所有26个字母的大小写
(red|blue|green)查找任何指定的选项,例如邮箱.com .cn .org
1 <script> 2 var i = "Just do it"; 3 var o = /d/; 4 alert(o.test(i)); 5 var u = /a$/; 6 alert(u.test(i)); 7 var n = /\d/; 8 alert(n.test(i)); 9 var nn = /\D/; 10 alert(nn.test(i)); 11 var nl = /\W/; 12 alert(nl.test(i)); 13 var ab = /[a-b]/; 14 alert(ab.test(i)); 15 var tp = /[^j]/; 16 alert(tp.test(i)); 17 </script>
(4)常用量词:
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为n的字符串
n+ 匹配任何包含至少一个n的字符串
n* 匹配任何包含零个或多个n的字符串
n? 匹配任何包含零个或一个n的字符串
n{X} 匹配包含X个n的序列的字符串 (序列为连续的意思)
n{X,Y} 匹配包含X或Y个n的序列的字符串
n{X,} 匹配包含至少X个n的序列的字符串
1 <script> 2 var wr = "hEllo world"; 3 var n1 = /a+/; 4 var n2 = /o*/; 5 var n3 = /o?/; 6 var n4 = /l{3}/;//包含连续3个l的字符串 false 7 var n5 = /l{2,3}/;//包含连续2个或3个l的字符串 true 8 var n6 = /o{2,}/;//包含至少连续2个o 9 var n7 = /d$/; 10 var n8 = /^h/; 11 alert(n6.test(wr)); 12 </script>
(5)修饰符:
i 执行对大小写不敏感的匹配
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
1 <script> 2 var n9 = /e/i; 3 alert(n9.test(wr)); 4 var n10 = /l/g; 5 for (i=0;i<wr.length;i++){ 6 fl = n10.exec(wr); 7 if(fl == null){ 8 break; 9 } 10 document.write(fl); 11 } 12 </script>
(6)综合运用:
设置一个邮箱名输入规则:
1 <script> 2 var em = "84751s@126.com"; 3 var email = /^[0-9A-z_-]+@[0-9A-z_-]+\.+[com|cn|org]+$/;
//以数字、大小写字母、下滑线、短杠开头 + @数字、大小写字母、下滑线、短杠+ . + com|cn|org结尾 \.可使.变为普通字符串
4 // ^ +& 以...开头和以...结尾,用于字符串拼接 5 alert(email.test(em)); 6 </script>
4.数组:
1 <script> 2 var arr1 = [2,5,6];//定义时直接给数组元素赋值 3 var arr2 = [];//定义一个空数组 4 var arr3 = new Array();//定义一个空数组并通过索引来赋值 5 arr3[0] = 1;//数组下标由0开始 6 arr3[3] = "abc"; 7 arr2[0] = 9; 8 arr2[1] = 3; 9 alert(arr1.length);//数组的length是数组内数据的个数 10 数组长度可变。总长度等于数组的最大索引值+1 11 同一数组中的元素类型可以互不相同 12 alert(arr3[2]);//当访问未赋值的数组元素时,该元素值为undefined,不会数组越界 13 var arr4 = [1,2,"a","b"] 14 for(x in arr4){//for in遍历数组 15 document.write(arr4[x]); 16 } 17 for(i=0;i<arr4.length;i++){//for循环遍历数组 18 document.write(arr4[i]); 19 } 20 for(i=0;i<10;i++){ 21 document.write(i+"<br/>"); 22 } 23 </script>
5.运算符:
1 <script> 2 var a = 52%10;// %取余运算 = 赋值 从右向左赋值 3 document.write(a); 4 //三目运算,返回布尔值,可用 if else 取代 5 var b = 2; 6 var c = 4; 7 b<c?alert("c大"):alert("b大");
if(b<c){
alert("c大");
}
else{
alert("b大");
}
8 // , 运算符 使其等于最后一个值 9 var e,f,g,h; 10 a=(e=2,f=5,g=0,h=2); 11 alert(a); 12 //void运算符 13 var e,f,g,h; 14 a=void(e=2,f=5,g=0,h=2); 15 alert(a);//a为未定义 16 //获取数据类型 17 alert(typeof(b));//返回变量数据类型 number 18 //instanceof 判断对象类型,返回布尔值 19 var k = [1,2,3]; 20 alert(k instanceof Array); 21 </script>
2018/02/24
获取字符串特定索引处的字符 |