js字符串中常用的方法09

字符串中常用的方法:

在真实项目中经常操作字符串,此时我们需要掌握常用的的一些字符串操作方法。

我会在下文中将每个方法前面添加一个str,代表字符串。目的是可以让大家更加好的理解字符串中常用到的方法。

1、str.charAt() 返回指定索引位置的字符。
在这里我们需要注意的是:

str[0]和str.charAt(0)都是获取第一个字符;在使用charAt无法获取有效字符的时候返回的是一个空字符串。而通过str[索引]这种方式,当指定的索引不存在的时候,[]方式获取的是undefined。

2、str.charCodeAt()

在charAt()基础上,把获取的字符变为编码值。‘如果是中文汉字的情况下,转换为Unicode编码值,如果是特殊字符或者字母数字,转换为ASCII编码中的值’。
charCodeAt(0),括号里字符串中字符的索引。
下面有一些常用的数字、字母对应的编码值。
48~57 : 数字 0~9
65~90 : 大写字母 A~Z
97~122 : 小写字母 a~z

3、String.fromCharCode(十进制的Unicode值) //把值按照ASCII表中的信息转换为对应的字符。

例:String.fromCharCode(104) 其结果是 h 。在ASCII码表中,十进制114对应的就是小写字母h。
(看到这里的童鞋,不太了解ASCII码表的,请自行问度娘)

4、str.substr() \ str.substring() \ str.slice()
实现字符串的截取的方法
但是区别在于:

str.substr(n,m):从索引n开始,截取m个字符,把找到的部分截取出来。
str.substring(n,m):从索引n开始截取(包含n),截取到索引m处(但是不包含m),把找到的部分截取出来。
str.slice(n,m) : 用法和substring()用法一样,只不过区别在于slice支持负数做为索引。
在索引为负数的时候,浏览器在处理的时候,使用字符串总长度加上负数的索引,然后按照正数处理操作。
例:str的总长度是46
str.slice(-7,-3) -> slice(46-7,46-3) -> slice(39,43)
在这里值得提的一点是 str.slice(0)、str.substring(0)和str.sub(0) 是把原有字符串内容都截取一份。(相当于字符串的克隆)

在高程3(JavaScript高级程序设计第124页)中提到了对substr()方法和substring()方法的索引出现负数的情况的一些处理。
在substr()方法将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0;substring()方法是会把所有负数参数都转换为0。

在关于以上三种方法截取字符串的时候,我们还需要注意一些细节:
第一:如果只传递了n,相当于从索引n开始,一直截取到字符串末尾。
第二:如果传递的索引超出了最大限制(超过了字符串的长度),也是把能截取的部分截取掉即可。
第三:如果一个参数都不传递的话,相当于把整个字符串都截取。(三种方法都是这个结果。)

5、str.toUppercase() 把所有字符串都转换成大写。

6、str.toLowercase() 把所有的字符串都转换成小写。

7、str.indexOf() / lastIndexOf()
str.indexOf() 获取当前字符在字符串中第一次出现位置的索引。
str.lastIndexOf() 获取当前字符在字符串中最后一次出现位置的索引。

我们需要注意的是:str.indexOf() 和 str.lastIndexOf() 都是从字符串索引为0开始检测的。
例如:

var str = ‘hello world!’
str.indexOf(‘w’) => 6 str.lastIndexOf(‘w’) => 6

仍然 str = ‘hello world!’ ,str.indexOf(‘llo’)的意思是:找到的字符必须是llo三个连在一起的,我们获取的第一个字符l的索引。

我们需要注意的是:如果当我们需要查找的字符在当前字符串中不存在,返回的是-1,(只要存在,索引范围就是>=0),那么我们可以根据这个规律,可以验证一下当前字符串中是否包含某个字符。

看下面代码思路可以更加明快一些。

if (str.indexOf(‘?’)===-1){
// 没有出现过
}

if (str.indexOf(‘?’)>=0){
// 出现过
}

8、str.split()

按照某一个字符把字符串拆分成数组中的某一项,然后分别存储到数组中,和数组中的join方法是对应的。(大家可以自行查看数组中join的方法,我会在我接下来的博客中继续总结数组中常用方法,嘿嘿。)

var hobbyList = ‘music|movie|eat’;
console.log(hobbyList.split(‘|’)); //结果是[‘music’,’movie’,’eat’]

如果没有在字符串中出现的字符,那么将以原字符串作为数组中的一项,返回出来。
console.log(hobbyList.split(“@”)); //结果是[‘music|movie|eat’]
其实通过字符串的split方法按照一个压根不存在的字符查找当前字符串,返回的也是当前字符串。

9、str.replace()

实现字符的替换
执行一次replace方法只能替换一次,如果有好几个都需要替换,在不使用正则的情况下我们需要执行多次。
在很多时候,即使我们执行很多次replace也实现不了,此时就需要我们正则处理了。(在真实项目中replace一般是搭配正则使用的)。

例如:如下面代码所示

var str =”dajiahao”;
str.replace(“dajiawanshang”,”dajia”);
这是str的结果就变成了 ‘dajiawanshanghao’。
str.replace(“dajiawanshang”,”dajia”);
经过两次替换的结果‘dajiawanshangdajiawanshanghao’。
经过我们的两次替换依然没有实现效果。

10 trim / trimLeft / trimRight
str.trimLeft: 去除字符串开始的空格。

str.trimRight:去除字符串结尾的空格。
str.trim: 去除首尾的空格。(不能去除字符串与字符串之间的空格!!!)。

猜你喜欢

转载自blog.csdn.net/qq_45555960/article/details/102468571