字符串是js中常见的基本数据类型,现在总结了一部分常用操作,有不对的地方,欢迎指正批评~
- 字符串:是由一个个字符组成,包在引号里面;
- str.length 字符串长度;
- 字符串有索引从0开始;
- 不能用str[0]='100';的方式改变字符串的值;(根据索引无法修改原有的值)
1,charAt();
- 通过指定索引位置,找到字符,然后将其返回;
2,charCodeAt();
- 通过指定索引位置,返回字符的ASCLL码;
3,字符串截取
- substr(); substring();slice();
substr();
- substr(n,m) 从索引n开始,找到m个字符,然后将其返回;(返回一个从指定位置开始的指定长度m的子字符串)
- substr(n); 从索引n开始,一直截取到末尾,然后返回;(如果n为0,从开头截取到末尾)
- substr(); 如果不写参数,则将全部截取,并返回;
substring()
- substring(n,m);从索引n开始,找到索引m,不包含m;(用于提取字符串中介于两个指定下标之间的字符。)
- substring(n);从索引n开始,一直找到末尾,然后返回;
- substring();如果不写参数,则将全部找到,并返回;
slice()
- slice(n,m);从索引n开始,找到索引m处 ,不包含m;( 支持负数做索引)从str.length+(负数)处开始查找
- slice(n,m); 从索引n开始,一直找到末尾,然后返回;
- slice(); 如果不写参数,则将全部找到,并返回;
补0:
var num=9;
num='0'+num;
console.log(num.slice(-2)); // 09
4,字符串字母的大小写转换
- str2.toLowerCase(); 转化为小写
- str2.toUpperCase(); 转化为大写
var str1="ASDFGWERERG";
console.log(str1.toLowerCase()); // asdfgwererg
var str2="adegerw";
console.log(str2.toUpperCase());// ADEGERW
5,indexOf() 和 lastIndexOf();
- 查找字符串中字符第一次/最后一次出现的位置,返回索引;如果找不到,返回-1;
- 也可以用search str.search();
6,match 捕获(常用于正则表达式)
- 捕获的内容放在一个数组集合里:[第一项是查找的内容;index是开始找到的索引的位置;input是原始字符串;]
- 查找一个不存在的,返回null;
var str3="123meili";
console.log(str3.match('meili')); // ["meili", index: 3, input: "123meili"]
7,replace
- 替换(可用于正则表达式)用来替换指定字符
var str4="zxx123zxx678zxx";
console.log(str4.replace('zxx','wy')); // wy123zxx678zxx 不能全部替换
console.log(str4.replace(/zxx/g,'wy')); // wy123wy678wy 运用正则可以全部替换
8,trim() 去掉首尾的空格
- 字符串之间的空格不改变,返回新的字符串;有兼容性问题
- trimLeft(); 去掉左边的空格
- trimRight(); 去掉右边的空格
var str5=" ni hao ";
console.log(str5); //' ni hao ' 单引号是为了方便查看空格
console.log(str5.trim()); // 'ni hao'
9,split()
- 把字符串按照指定的分隔符拆分成数组 (与join作用相反)
var str6='ni hao zxx';
console.log(str6.split()); // ["ni hao zxx"]
console.log(str6.split('')); // ["n", "i", " ", "h", "a", "o", " ", "z", "x", "x"]
console.log(str6.split(' ')); // ["ni", "hao", "zxx"]
join:
var arr=[1,2,3,4,5];
var arr1=arr.join('');
console.log(arr1); // 12345
var arr2=arr.join('+');
console.log(arr2); // 1+2+3+4+5
实例:
function addZero(elem){
return ('0'+elem).slice(-2);
}
var times='2017/2/5 16:15:50'; //2017年02月05日 16时15分50秒
var tt=times.split(' '); // tt=["2017/2/5", "16:15:50"]
var t1=tt[0];
var t2=tt[1];
t1=t1.split('/');
t2=t2.split(':');
console.log(t1); //["2017", "2", "5"]
console.log(t2); // ["16", "15", "50"]
var time1=t1[0]+'年'+addZero(t1[1])+'月'+addZero(t1[2])+'日'+' '+t2[0]+'时'+t2[1]+'分'+t2[2]+'秒';
console.log(time1); // 2017年02月05日 16时15分50秒