07.字符串常用方法总结
字符串所有的方法都不会改变原字符串,而是返回新的字符串
- 拼接字符串:
- 拼接字符串最直观的方式就是使用
+拼接
- 字符串截取方法:
-
slice: 截取字符串
- 接受两个参数,分别代表起始下标和结束下标(两个参数的数学区间是前闭后开的
[)) - 只写一个参数,代表开始截取的起始位置,然后直接截取到末尾
- 第一个参数为负,代表从后向前数开始截取的位置,截取还是向后截
- 第二个参数为负,代表从后向前数确定结束位置
- 接受两个参数,分别代表起始下标和结束下标(两个参数的数学区间是前闭后开的
-
例子
<script>
var src = "abcderfsg";
src.slice(1, 2); //b
console.log(src.slice(1, 2));
src.slice(1); //bcderfsg
console.log(src.slice(1));
src.slice(-2); //sg
console.log(src.slice(-2));
src.slice(-5, 7); //erf
console.log(src.slice(-5, 7));
src.slice(1, -1);//bcderfs
console.log(src.slice(1, -1));
src.slice(3, -7);//截取不到数据
console.log( src.slice(3, -7));
</script>
-
总结:解析解构
str.slice(参数1, 参数2)第一个参数代表起始的位置,无论正负都是起始的位置,第二个参数是结束的位置,截取的数据就是它们包住的数据,执行方法的返回值就是截取的值。 -
substring
- 接受两个参数,分别代表起始下标和结束下标(不包含结束下标)
- 只写一个参数,代表开始截取的起始位置,然后直接截取到末尾
- substring会忽略负值,把负值转为0
- 如果第二个参数小于第一个参数,则交个参数的顺序(起始和结束位置相比较的大小无法确定的时候可以使用substring)
- 字符串大小写转换
- toLowerCase():把字符串中所有的字符转小写
- toUpperCase():把字符串中所有的字符转大写
- 字符串查找方法:
- 下标方式(推荐),直接通过 需计算成员访问运算符([]) 获取某个下标的字符串,如果获取不到,则返回undefined,字符串是有点类似于数组的,它每一个都有一个下标
- indexOf方法,接受一个字符串作为参数,判断调用indexOf方法的字符串中是否存在当前字符串参数,如果存在则返回第一次出现的下标,否则返回-1
- 例:
str.indexOf("字符串中字符")
- 例:
- search方法和indexOf的功能是相同的,查找指定字符串第一次出现的位置,但是可以接受正则表达式查找,search的底层仍然使用的是indexOf,所以如果不是正则查找,则使用indexOf即可 例:
var str = "hel3lo 1 word 2 666 good";
var reg1 = /[0-9]+/g; //匹配一个或多个数字
console.log(str.search(reg1));//输出的结果是:3,只会输出查找的第一个
- macth方法,接受正则表达式作为参数,把所有查找到的字符串,组成一个数组返回,如果一个都查不到,则返回null,例:
var str = "hel3lo 1 word 2 666 good";
var reg1 = /[0-9]+/g; //匹配一个或多个数字
console.log(str.match(reg1)); //["3","1","2","666"]
- replace方法,用来把查找到的字符串进行替换,接受的第一个参数是正则用来查找被替换的字符串,第二个参数是替换的字符串(第二个参数也可以是一个函数,函数的参数就是当次查找的值,函数的返回值就是当次替换的值)
基础使用
var str = "我是小猪佩奇,我的弟弟是乔治";
var reg3 = /小猪/g;
console.log(str.replace(reg3, "**")); //我是**佩奇,我的弟弟是乔治
var res = str.replace(reg3, "**");
console.log(res);//我是**佩奇,我的弟弟是乔治
函数参数
var str1 = "我是佩奇,这个是我的弟弟乔治";
var reg4 = /佩奇|乔治/g;
var result = str1.replace(reg4, function (value) {
console.log("shuzu ",value);//打印的是替换的值,value是替换的值
var str = "";
for (var i = 0; i < value.length; i++) {
str += "*";
}
console.log("替换内容",str);//**
return str;//返回的就是要替换的内容(**)根据匹配的长度得到替换数据的个数
});
console.log(result);
总结:这个函数是一个回调函数,先执行第一个参数的正则表达式,获得要替换的数据,再执行回调函数,
将要替换的内容传入函数中,函数的作用是根据传入的参数长度生成对应长度的替换内容,作为返回值,
返回之后,进行替换。
- includes:如果使用indexOf判断某个字符串是否存在,只能通过判断返回值是否不等于-1实现。includes就是判断某个字符串是否存在,存在返回true,否则返回false,
str.includes("查找的内容")
- 字符串转数组方法:split():
- 如果没有传递任何参数,或者参数字符串在字符串中不存在,则把字符串整体作为数组的一个值
- 如果参数是一个空字符串,则把字符串的每一个字符串作为数组的每一个(键)值,而不是分别作为一个新的数组。
- 如果参数是一个字符,则以这个字符为分割,切割字符串,将以该字符的分割的内容,分别作为数组的键值
- 去除字符串首尾空白字符
- trimStart():去除字符串前边的空白字符
- trimeEnd():去除字符串后边空白字符
- trim():去除字符串两边的空白字符
var str = " 123 456 ";
console.log(str);//未改变
console.log(str.trimStart());//去掉头部空格
console.log(str.trim());//去头去尾部空格