字符
一、转义字符——转换字符的意义
例1:
// \n 转义为换行符 console.log('hello \n word'); // table键的效果 console.log('hello \t word'); // ' console.log('it\'s a dog');
例2:
// 练习 : 打印出现welcome to chi\na console.log('welcome to chi\\na');
二、字符串中常用方法
toUpperCase() 将英文字母都转换为大写
例1:
// 全部转换为大写或小写 var str='welCome To China'; // 转为大写 console.log(str.toUpperCase(str));
toLowerCase() 将英文字母都转换为小写
例1:
// 全部转换为大写或小写 var str='welCome To China'; // 转为小写 console.log(str.toLowerCase(str));
例2:
// 练习:初始化4个英文字母(有大小写)保存变量中,循环弹出提示框,输入4个字符,如果输入正确结束循环; //[html文件] <script src="demo.js"></script> //[demo.js文件] // 初始化4个英文字符 var code='mStN'; // 无线循环弹出提示框 do{ var str=prompt('please input code'); // 不区分大小写和code比较 // 把初始化的都转成大写,把输入的都转成大写; code=code.toUpperCase(); // 把输入的都转成大写 str=str.toUpperCase(); if(code==str){ alert('yes'); break; } }while(true);
length() 获取字符串的长度
例1:
var str='你好xiaopang'; console.log(str.length);
charAt() 获取下标对应的字符
例1:
var str='你好xiaopang'; console.log(str.charAt(str.length-1));
charCodeAt() 获取某个字符对应的unicode码
例1:
var str='你好xiaopang'; console.log(str.charAt(0).charCodeAt());
练习:
// 使用变量保存字符串“javascript”,获取字符“a”出现的个数 var str='javascript'; for(var i=0,sum=0;i<str.length;i++){ // 获取每一个字符 if(str.charAt(i)=='a'){ sum++; } } console.log(sum);
indexOf(value,start) 获取下标 ,value是要查找的字符串,start是开始查找的下标,默认是0,如果找不到返回-1
lastIndexOf() 找最后一个
例1:
// 通过字符找下标,获取s的下标 var str='javascript'; console.log(str.indexOf('s')); console.log(str.indexOf('a')); console.log(str.indexOf('scr')); // 找第2个a console.log(str.indexOf('a',2));
例2:
// 练习:声明变量保存字符串,检测该字符串是否为邮箱格式,如果是返回true,不是返回false // 判断是否含有@ var str='tom@163.com'; if(str.indexOf('@')>=0){ console.log(true); }else{ console.log(false); }
slice(start,end) 截取字符串,start是开始的下标,end是结束的下标,不包含end本身,如果end为空,截取到最后;
例1:
// 截取字符串 var str='javascript'; console.log(str.slice(4)); // script console.log(str.slice(4,7)); // scr console.log(str.slice(-3,-1)); // ip
例2:
// 使用变量存储身份证号,获取其中的年月日和性别。打印1997年05月20日 男 // 1102301997052023310 var str='1102301997052023310'; var year=str.slice(6,10); var month=str.slice(10,12); var data=str.slice(12,14); var sex=str.slice(-2,-1); if(sex%2==1){ return sex='男'; }else{ return sex='女'; } console.log(year+'年'+month+'月'+data+'日'+sex);
例3:
// jerry@sina.com.cn 要求提取邮箱的用户名和网址 var str='jerry@sina.com.cn'; // 获取@的下标 var index=str.indexOf('@'); console.log(index); // 获取用户名 var username=str.slice(0,index); // 获取网址 var address=str.slice(index+1); console.log('用户名'+username+'网址'+address);
substr(start,count) 第一个是开始的位置,第二个是要截取的位数,若只有一个参数,则后面的都截取
例1:
var str='javascript'; str.substr(4,3); //scr str.substr(-3,2); //ip
例2:
// 'hELlo' ---> 'Hello',首字母转大写,其余小写 var str='hELlo'; var one=str.substr(0,1).toUpperCase(); var last=str.substr(1).toLowerCase(); console.log(one+last);
split() 按照指定的字符, 将一个字符串分割为数组
例1:
var str='a|b|c'; console.log(str.split('|'));
例2:
// 使用split获取邮箱的用户名和域名 var str='jerry@qq.com'; var arr=str.split('@'); console.log(username+arr[0]); console.log(address+arr[1]);
例3:
// 练习:将一句英文所有单词的首字母转大写,其余字母转小写; // 'hOW arE yOu' ----> How Are You var str='hOW arE yOu'; // 按照空格将字符串分割为数组 var one=str.split(' '); // 遍历数组,获取每一个元素(单词) for(var i=0;i<arr.length;i++){ console.log(i); // 将每个元素的首字符转大写,其余转小写 var first=one[i].substr(0,1).toUpperCase(); var last=one[i].substr(1).toLowerCase(); console.log(first+last); // 把转换后的结果替换之前的元素 arr[i]=first+last } // 数组转换成字符串 arr.join(' '); console.log(arr);
匹配模式——查找、替换字符串
reolace(1,2) 查找并替换,1是要查找的字符串,2是要替换的字符串,1可以使用字符串形式,也可以使用整个表达式形式/china/ig
例1:
var str='China是世界上人口最多的国家,china的互联网高度发达,CHINA有好多的程序员,China是一个伟大的国家'; // 查找多有的China,并替换为中国 // console.log(str.replace('china','中国')); // 使用正则查找,i 忽略大小写,g 全局查找 console.log(str.replace(/china/ig,'中国'));
match() 只负责查找,返回一个数组
var str='China是世界上人口最多的国家,china的互联网高度发达,CHINA有好多的程序员,China是一个伟大的国家'; console.log(str.match(/china/ig));
search() 返回满足条件的第一个下标,找不到返回-1
var str='China是世界上人口最多的国家,china的互联网高度发达,CHINA有好多的程序员,China是一个伟大的国家'; console.log(str.search(/china/));
Math对象——不需要使用new创建,可以直接使用
// 圆周率 console.log(Math.PI); // 绝对值 console.log(Math.abs); // 取整 console.log(parseInt(4.8)); // 向下取整 console.log(Math.floor(5.2)); // 向上取整 console.log(Math.ceil(5.3)); // 四舍五入取整 console.log(Math.round(5.4)); // 获取一组数据的最大值 console.log(Math.max(8,2,4,6,0,12)); // 获取一组数据的最小值 console.log(Math.min(8,2,4,6,0,12)); // 获取x的y次幂 console.log(Math.pow(3,4)); // 获取随机0-1 >=0 <1 console.log(Math.random());
例1:
// 0-20 console.log(Math.floor(Math.random()*21));