mydal

怕光阴流逝 让一切都作废

0%

js字符串方法

JavaScript 字符串方法

​ 最近在准备考1+x证书,刷了一些题,很多题中考到了js字符串的方法,特此总结一下。

字符串长度

length 属性返回字符串的长度

1.png

查找字符串中的字符串

indexOf() 方法返回字符串中指定文本首次出现的索引(位置)

1.png

lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引

1.png

如果未找到文本,indexOf()和lastIndexOf()都返回-1

两种方法都可以传入第二个参数,用来指定检索的起始位置

1.png

1.png

注意: lastIndexOf() 限制了检索位置为10 因此检索不到 返回-1

像下面这种情况 会从第30个字符开始检索 返回的仍然是从字符起点开始检索的位置 第二个参数只是会限制字符检索的长度 不会从后往前检索

1.png

检索字符串中的字符串

search()方法检索特定值的字符串,并返回匹配的位置。听上去和indexOf()方法是相等的,实际上,区别很大

区别在于:search() 方法无法设置第二个开始位置的参数。

indexOf() 方法无法设置更强大的搜索值(正则表达式)。

1.png

如图:指定参数无效 还是从头开始检索

提取部分字符串

提取部分字符串有三种方法:

  • slice(start,end);
  • substring(start,end);
  • substr(start,length);

slice()方法

slice()提取字符串的某个部分 并且在新字符串中返回被提取的部分。

俩个参数:起始索引,终止索引;

1.png

从2开始包括2 到5结束 不包括5

参数为负数

1.png

省略第二个参数

1.png

省略第二个参数 则会拿到剩余的字符

从结尾计数

1.png

注意:参数为负数 不适用于ie8及其更早版本

substring()方法

substring()类似于slice()

区别:substring() 不能接受负的索引

传入负数索引是无效的 会从起点0开始截取

1.png

slice()一样,如果省略第二个参数,则将截取字符串的剩余部分

substr()方法

substr() 也类似于slice()

区别:第二个参数 规定被提取部分的长度,第二个参数不能传入负数,因为长度不能为负数

参数为负,没有打印结果 打印失败

1.png

参数为正 正常截取

1.png

首个参数为负 第二个参数长度指定无效 负几 截取到几个字符 这里是负2 因此 截取到2个字符

1.png

slice()一样,如果省略第二个参数,则将截取字符串的剩余部分

替换字符串内容

replace()方法用另一个值替换在字符串中指定的值

参数1 为原字符串中的值 参数2为替换的值

1.png

返回的是一个新字符串 不会改变原有字符串 默认只替换首个匹配到的字符

默认情况下 replace()对大小写敏感

1.png

使用正则表达式/i(大小写不敏感) ** **注意:正则表达式不带引号

1.png

替换所有匹配

使用正则表达式的g(用于全局搜索)

1.png

转为大写和小写

toUpperCase()把字符串转换为大写

1.png

toLowerCase()把字符串转换为小写

1.png

连接两个或多个字符串

concat()可用于代替加运算符

1.png

所有的字符串方法都会返回新字符串 不会修改原始字符串.

字符串是不可变的:字符串不能更改,只能替换

删除字符串两端的空白符

trim()方法删除字符串两端的空白符

1.png

注意:ie8或更低版本不支持trim()方法 。

如需支持ie8或更低版本 可以使用replace() 需搭配正则

1.png

提取字符串字符

charAt()

charAt()方法返回字符串中指定下标(位置)的字符串

1.png

charCodeAt()方法

charCodeAt()方法返回字符串中指定索引的 unicode 编码

1.png

字符串转换为数组

split()将字符串转换为数组

1.png

省略分隔符 被返回的数组将包含index[0]中的整个字符串

如分隔符是””,被返回的数组将是间隔单个字符的数组

1.png

总结:革命尚未成功 同志仍需努力 细节决定成败