JS中字符串操作总结

学习JavaScript的时间不长。每天总结一点点~~

这篇随笔是针对字符串的一些操作总结。

1.charAt()截取字符串中某个位置的单个字符,下标由0开始

来个栗子:

var  str = "hello world !";
console.log(str.charAt(0)); //h
console.log(str.charAt(5)); //
console.log(str.charAt(6)); //w
console.log(str.charAt(32)); //

从上面的栗子可以看到,当截取下标是0的字符时,返回的是 “h”;

当下标为5的时候,在字符串中的字符是一个空格,所以返回的就是“ ”;

最后,当给出的下标超出字符串的长度的时候,返回的也是“ ”;

2.subsring():截取字符串中两个指定下标之间的字符,不能有负值(不识别负数)

来个栗子:

var  str = "hello world !";
console.log(str.substring(3));       //lo world !
console.log(str.substring(0,4));     //hell   
console.log(str.substring(8,3));     //lo wo
console.log(str.substring(-2,3));    //hel

总结一下:当substring(x)只有一个参数时,会默认以当前数字的下标开始,一直截取到字符串的末尾;

当substring(x,y)中有两个参数时,在截取字符串时,会从x下标开始,y下标结束,但是,会以[x,y)格式截取,也就是包含x下标的字符,但是不包含y 下标的字符;

如果x<y那很正常,如果x>y呢,莫慌,substring()会默认,从小数字开始截取到大数字;

当参数中有负数怎么办,莫慌!虽然substring()不识别负数,但是,如果出现负数,它会默认将负数识别为0!

3.slice():功能与上面那个一样,也是提取指定下标之间的字符串,区别是,这个可以有负值哦,截取时的规则也会出现变化

来个栗子:

var  str = "hello world !";
console.log(str.slice(3));     //lo world !  
console.log(str.slice(-4));    //ld !  
console.log(str.slice(3,7));   //lo w   
console.log(str.slice(3,0));   // 
console.log(str.slice(1,-3));  //ello worl

我们先来说一下如果参数出现负值时,将字符串的总长度加上参数负值的结果(如果参数是-4,结果就是str.length+(-4))就是截取时的下标。

ps:你可以把字符串最后一个看做-1,负几就往前数几个就好了,反正也没人管你怎么数出来的~

当只有一个参数时,还是会从给出的参数的下标位置一直截取到字符串最后,负数也是一样;

当参数是两个的 时候,如果第一个参数下标的位置在第二个参数下标位置之前,结果就是两个下标之间的字符(栗子中第三和第五种情况);

如果第一个参数下标的位置在第二个参数下标位置之后,也就是从第一个参数开始向后截取,截取不到第二个参数的位置,那么结果就是空的(栗子中第四种情况);

4.split():用于把一个字符串分割成字符串数组

来对儿栗子:

var  str = "hello world !";
console.log(str.split(""));  
//["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", " ", "!"]
var  str = "aa,bb,cc,dd,ee";
console.log(str.split(","));   //["aa", "bb", "cc", "dd", "ee"]

将“”中的内容作为分隔符,把字符串分割成字符串数组;

split()还可以有第二个参数

var  str = "aa,bb,cc,dd,ee";
console.log(str.split(",",3));   //["aa", "bb", "cc"]

看出来了么,没错,第二个参数是数字,表示保留数组中的前几个!

5.concat():将一个或多个字符串拼接起来

来个什么来着

var  str = "I lo";
console.log(str.concat("ve y","ou","!"));     //I love you!

这样也可以:

var  str = "I lo";
var str1 = "ve y";
var str2 = "ou";
var str3 = "!";
console.log(str.concat(str1,str2,str3));       //I love you!

6.indexOf():指定元素从前开始第一次出现的位置

lastIndexOf():指定元素从后开始第一次出现的位置

下标都是从0开始

来个栗子:

var str = "JavaScript is a programming language";
console.log(str.indexOf("i"));   //7
console.log(str.lastIndexOf("i"));   //24

他们的第二个参数,代表从第几位开始匹配

console.log(str.indexOf("i",9));   //11

7.toLowerCase()toLocaleLowerCase():将字符串中字母转换成小写

toUpperCase()toLocaleUpperCase():将字符串中字母转换成大写

来个梨子:

var str = "HELLO world !";
console.log(str.toLowerCase());         //hello world ! 
console.log(str.toLocaleLowerCase());   //hello world !  
console.log(str.toUpperCase());         //HELLO WORLD ! 
console.log(str.toLocaleUpperCase());   //HELLO WORLD !

用法说完了,说一下区别:

呃...说不太清,但MDN上是这样解释的 :

toLocaleLowerCase()方法返回调用该方法的字符串被转换成小写之后的值,转换规则根据任何本地化特定的大小写映射toLocaleLowerCase()并不会影响字符串自身的值。在大多数情况下,该方法产生的结果和调用toLowerCase()的结果相同,但是在某些本地环境中,比如土耳其语,它的大小写映射并不遵循在Unicode中的默认的大小写映射,因此会有一个不同的结果。

(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase)

8.charCodeAt():获取指定单个字符的ASCII码或Unicode 十进制 码

来个李子:

var str01 = "f";
var str02 = "猿";
console.log(str01.charCodeAt());         //102
console.log(str02.charCodeAt());         //29503

只能识别单个字符,即时你写了多个字符,也只识别第一个字符,其他的都忽略掉了。

9.String.fromCharCode():将ASCII码 或 Unicode 十进制码  解析成字符

举个梨子:

console.log(String.fromCharCode("102"));   //f
console.log(String.fromCharCode("29503"));  //

 

Srong前端小白一枚,以上内容都是自己学习后总结的,如果有错误或者有疑义的地方欢迎能看到的小伙伴们可以给予批评指正。

敬礼、鞠躬.gif

 

posted @ 2016-02-23 15:58  一壶烧开的水  阅读(255)  评论(0)    收藏  举报