字符串的方法们
如果你刚接触js,你会觉得字符串是一个非常不起眼的小家伙,但是随着越来越深入,我们会发现更多。那么我们就用一个例子来展开今天的故事。
今天主要讲解:
charAt 找字符 ,chatCodeAt() 找到字符专Unicode , indexOf 通过字符找下标(左到右),lastIndexOf通过字符找下标(右到左),slice截取字符串,split 截取字符串,分割为数组 ,Substring截取字符串(同silce有区别),substr 截取一段指定的字符串, toLowerCase, toUpperCase转大写,转小写。 trim去掉字符串首尾空格。
var str = 'song';
console.log(str.length); //4
纳尼~?字符串也有length属性,bingo! 字符串的length只能读,不能更改。
接下来就引入我们今天的主角,字符串的方法们。 不错 字符串也有许多方法,什么是方法?
打个比方: 字符串好比一辆轿车。 而方法就好比 刹车,启动等。
charAt
先介绍charAt(),它的作用:是通过索引找字符。 语法:字符串.charAt(index) 参数: index 取值范围 0 - ( length -1 ) ;
var str='song';
var s1=str.charAt(1);
console.log(s1); //o
// s 0 o 1 n 2 g 3
var s2=str.charAt();
console.log(s2);// s
var s3=str.charAt(10);
console.log(s3); //空
chatCodeAt()
作用:通过索引找字符,找到后转为Unicode编码 , 语法: 字符串.charCodeAt(index)
参数:index 索引值(取值范围 0 - length-1);
1) 如果没有参数默认从第0个开始。
2)如果参数超过length-1的值,返回NaN;
返回值:返回字符对应的Unicode值
var str = 'song';
var s1 = str.charCodeAt(1);
console.log(s1); //97
var s2=str.charCodeAt();
cosnole.log(s2); //107
var s3 = str.charCodeAt(10);
console.log(s3); //NaN
indexOf
能通过字符找到对应的下标值(从左往右找这个字符首次出现的位置), 语法: 字符串.indexOf(searchValue,fromIndex)
参数:searchValue 要查找的字符, fromIndex 从哪个位置开始查找,这个参数如果没有默认为0.(默认从第0个的位置开始找)
返回值: 返回一个数字,这个数字代表字符在整个字符串里的真实下标值。如果没找到的话就返回 -1.
var str = "song";
var s1 = str.indexOf('o');
console.log(s1); //1
var s2 = str.indexOf('g',2);
console.log(s2); //3
var s3 = str.indexOf('c');
console.log(s3) // -1
lastIndexOf
作用: 通过字符找下标(从右往昨找字符最后出现的位置) , 语法:字符串.lastIndexOf(searchValue,formIndex)
参数:searchValue 要查找的字符, fromIndex 从哪开始查找,默认从第一个字符开始查找。
返回值:返回一个数字,如果找到就返回这个字符对应的下标值,如果没找到就返回 -1;
var str = "songsong";
//[s o n g s o n g]
//[0 1 2 3 4 5 6 7]
var s1 = str.lastIndexOf('o');
console.log(s1); //5
//从右(g)往左(s)数, 首次出现的是下标为5的o,然后停止结束。
var s2 = str.lastIndexOf('n',5); //2
//[s o n g s o]
//[0 1 2 3 4 5] 这么找,然后从5开始往0找,找到首次出现的是第2个
console.log(s2);
slice
作用:截取字符串。 语法: 字符串.slice(beginSlice,endSlice)
参数: beginSlice 开始的位置(下标值); endSlice 结束的位置(下标值)
1)如果一个参数都没有的话,直接返回整个字符串。如果只有一个参数,代表开始的位置,结束的位置默认为最后一位字符。
2)参数可以是负数,但是开始位置不能大于结束位置。
3)开始到位置是最后一位,代表-1,如果开始位置到值小于结束位置,则返回一个空。
返回值: 返回截取到的那个字符串,原字符串没有变化。
var s1 = "superman";
console.log(s1.slice(1,5)); //uper
// [s u p e r m a n]
// [0 1 2 3 4 5 6 7]
// beginSlice 代表从对应的下标开始
// endSlice 代表 对应的下标-1;
// 我们这么举例,beginSlice = 开始的 target.length , endSlice = 结束的 target.length -1
var s2 = s1.slice(3);
console.log(s2); //erman
var s3 = s1.slice(); //superman
console.log(s3);
var s4 = s1.slice(-3,-1);
console.log(s4); // ma
// [ s u p e r m a n]
// [-8 -7 -6 -5 -4 -3 -2 -1]
// -3 m , -1(因为结束位置是不包含的,既-1-1 =-2 )a
Split
作用:用指定的分隔符,把字符串分割成数组。 语法:字符串.split(separator, limit)
参数:
separator 分割符,limit 分割成数组数据的个数
1)一个参数都没有以及参数是一个空格字符都话,会把整个字符串作为数组中的一个数据
2)如果参数为一个空字符,它会把字符串里的每个字符作为数组中的数据,进行拆分。
3)如果参数为2个,分割后的数组的个数就是第二个参数的值,而第一个参数的值则是以它为分割点,且该值会在新生成的数组中消失。
返回值:返回一个数组,原字符串不变。
var str = "spiderman";
var s1 = str.split();
console.log(s1); //["sipderman"]
var s2 = str.split('');
console.log(s2); //["s","i","p","d","e","r","m","a","n"];
var s3 = str.split(" ");
console.log(s3); //["sipderman"]
var s4 = str.split('a');
console.log(s4); //["spiderm", "n"]
var s5 = str.split("i",1);
console.log(s5); //["sp"]
Substring
作用:截取一段字符串 语法: 字符串.substring(indexStart, indexEnd)
参数:indexStart 开始的下标位置 indexEnd结束的下标位置
1)如果一个参数都没有,会返回整个字符串
2)如果只有一个参数,就从这个参数都位置一直截到最后一个字符
3)如果有两个参数,那最后一个参数代表结束到位置,但是不包含它
4)如果第一个参数的值大于第二个参,则该功能会自动重新排序调增位置。
返回值:返回截取后的字符串,原字符串没有变化。
与slice的区别:
1)slice的起始位置不能大于结束位置,而substring起始位置可以大于结束位置
2)slice可以放负数,而substring是不能放负数
var str = "superman";
var s1 = str.substring();
console.log(s1) ; //superman
var s2 = str.substring(2);
console.log(s2); //perman
var s3 = str.substring(3,5);
console.log(s3) //er
var s4 = str.substring(5,3);
console.log(s4); //er
var s5 = str.substring(-3,-2);
console.log(s5); //空
Substr
作用:截取一段指定开始位置与个数的字符串 。 语法:字符串.substr(start,length)
参数: start 代表开始的位置(小标值), length 代表要截取的个数
1)一个参数都没有,它会把整个字符串返回
2)如果只有一个参数,那默认会从第一个参数都位置截到最后一位字符
返回值:返回截取到到字符串,原字符串没变。
var str = "song";
var s1 = str.substr();
console.log(s1); //song
var s2 = str.substr(1);
console.log(s2); //ong
var s3 = str.substr(1,2);
console.log(s3); //on
toLowerCase()
作用:把字符串全部转成小写。 语法:字符串.toLowerCase()
没有参数。
返回值:返回字符串转成小写的结果。原来的字符串不变。
toUpperCase()
作用:把字符串全部转成大写。 语法:字符串.toUpperCase()
没有参数。
返回值:返回字符串转成大写的结果。原来的字符串不变。
var str = "HAHA";
var s1 = str.toLowerCase();
console.log(s1); //haha
var str1 = "superman";
var s2 = str1.toUpperCase();
console.log(s2); // SUPERMAN
Trim
作用:去掉字符串的首位空格。 语法:字符串.trim();
没有参数
返回值:返回字符串去掉首位掉空格的效果,原字符串不变。
一般trim是很少被用到的,可能会用到的地方是在验证用户名的时候,但是一般验证用户名用正则可以解决,所以用的机会就越来越少了。
var str = " haha ";
console.log(str); // haha
var s1 = str.trim();
console.log(s1);// haha