一、length属性:
每个字符串都有一个length属性,返回字符串的长度。
var str1 = "Hello String";
console.log(str1.length); // 12
二、字符串方法 charAt()、charCodeAt()
1、charAt(索引):参数是字符串索引,返回对应的字符;
var str2 = "Hello String";
console.log(str2.charAt(1)); // e 返回字符串索引1位置的字符
2、charCodeAt(索引):参数是字符串索引,返回对应索引字符的字符编码
var str3 = "Hello CharCodeAt";
console.log(str3.charCodeAt(1)); //101 返回字符串索引1位置字符的字符编码
三、截取方法slice()、substr()、substring()
1、slice():截取字符串
参数四种情况
(1)、当传两个参数,第一个参数是截取的开始位置的索引,第二个位置是截取的结束位置的索引,返回被截取的字符串,返回值不包含结束位置的字符串;
(2)、当传一个参数返回当前参数索引之后的所有字符串;
当传负参数时,slice()会把负数加上字符串了length,所得数替换对应参数;
(3)、当不传参数返回整个字符串;
(4)、当传不存在的索引返回空;
var str4 = "Hello slice";
console.log(str4.slice(1,2)); // 2 传入两个参数时,返回被截取的字符串,返回值不包含结束位置的字符串;
console.log(str4.slice(1)); // ello slice 传入一个参数时
console.log(str4.slice(-5,-4)); // s 参数是负数情况,将负数加上字符串的length,所得值替换原来位置
console.log(str4.slice()); // Hello slice 不传参数情况,返回整个字符串
2、substr():截取字符串
参数四种情况:
(1)、传入两个参数时,第一个参数是截取的开始位置的索引,第二个参数是指定返回字符串的个数;
(2)、传入一个参数时候,返回当前参数索引之后的所有字符串
(3)、传入负数时,substr()会把第一个参数加上字符串的length,所得数替换第一个参数,第二个参数会直接转换成0,返回空
(4)、传入空时,直接返回全部字符串
var str5 = "hello substr";
console.log(str5.substr(1,2)); // el 两个参数情况,第一个参数截取的起始位置,第二个参数是截取的个数
console.log(str5.substr(1)); // ello substr 一个参数情况,返回参数之后的所有字符串
console.log(str5.substr(-1,-2)); // 空 参数是负数时,第一次参数加上字符串length所得数替换原来参数,第二个参数直接转换成0
console.log(str5.substr()); // hello substr 传入空时候 返回所有字符串
3、substring():截取字符串
参数四种情况:
(1)、传入两个参数时候,第一次参数是截取起始位置,第二个参数是结束位置,返回值不包含结束位置字符
(2)、传入一个参数时候,返回参数之后的所有字符串
(3)、传入负数时候,会把所有负数直接转换成0
(4)、传入空时,返回所有字符串
var str6 = "hello substring";
console.log(str6.substring(1,2)); // e 两个参数返回值不包含结束位置字符
console.log(str6.substring(1)); // ello substring 一个参数时候,返回参数之后的所有字符串
console.log(str6.substring(-1,-2)); // 空 负数时会把所有负数参数都转换成0
console.log(str6.substring()); // hello substring 没有参数时,返回所有的字符串
四、查找方法indexOf()和lastIndexOf()
两个方法用法都一样,indexOf()从前开始查找,lastIndexOf()从后开始查找
返回值都是对应字符第一次出现的索引;
当查找不到返回-1
参数(“查找的字符”,“从哪里开始查找的索引(可选参数)”)
var str7 = "hello indexOf"
console.log(str7.indexOf("o")); // 4
console.log(str7.indexOf("o",5)); // -1 查找“o”,从索引 5开始查找,查找没有结果,返回-1
lastIndexOf()用法一样
五、trim()去掉空格方法
trim():去掉首尾空格
trimLeft():去掉首部空格
trimRight():去掉末尾空格
var str8 = " hello trim ";
console.log(str8.tirm()); // "hello trim";
console.log(str8.tirmLeft()); // "hello trim "
console.log(str8.tirmRight()); // " hello trim"
六、配置模式match()、search()、replace()、split()
1、match():参数是字符串或者RegExp对象的正则表达式。返回是一个数组
var text = "cat,bat,sat.fat";
var pattern = /.at/;
var matchs = text.match(pattern); // 返回一个数组 与pattern.exec(text); 方法相同
conosle.log(matchs.index); // 0
console.log(matchs[0]); // "cat"
console.log(pattern.lastIndex); // 0
2、search():参数是字符串或者RegExp对象的正则表达式,返回字符串中第一个匹配的索引,如果没有找到匹配,则返回-1,search()方法始终从字符串开头向后面查找
var str8 = "cat,bat,sat,fat";
var pos = str8.search(/at/);
console.log(pos); // 1 at在字符串中第一次出现的位置
3、replace():接收两个参数,第一个参数可以是一个 RegExp 对象或者一个字符串(这个字符串不会被转换成正则表达式),第二个参数可以是一个字符串或者一个函数。如果第一个参数是字符串,那么只会替换第一个子字符串。要想替换所有子字符串,唯一的办法就是提供一个正则表达式,而且要指定全局( g )标志
var text = "cat, bat, sat, fat";
var result = text.replace("at", "ond");
alert(result); //"cond, bat, sat, fat"
result = text.replace(/at/g, "ond");
alert(result); //"cond, bond, sond, fond"
4、split():基于指定的分割符,将一个字符串分割成多个子字符串,返回一个数组;(可以理解为是将字符串转换为数组的方法)
var str = "yellow,red,blue,green";
console.log(str.split(',')); // ["yellow","red","blue","green"]
七、localeCompare()比较两个字符串
返回值 -1、0、1
1、如果字符串在字母表中应该排在字符串参数之前,返回一个负数(大多数情况返回-1)
2、如果字符串等于字符串参数,则返回0
3、如果字符串在字母表中应该排在字符串参数之后,返回一个正数(大多数情况返回1)
var str9 = "yellow";
console.log(str9.localeCompare("brick")); // 1
console.log(str9.localeCompare("yellow")); // 0
console.log(str9.localeCompare("zoo")); // -1
八、 fromCharCode() 方法
这个方法的任务是接收一或多个字符编码,然后将它们转换成一个字符串。
console.log(String.fromCharCode(104,101,108,108,111)); // "hello"
九、大小写转换
toLowerCase():转换成小写,
toUpperCase():转换成大写;常用的方法
toLocalseLowerCase():转换成小写,
toLocalseUpperCase():转换成大写。针对特定的地区使用这两方法
var str6 = "hello world";
var str6s = str6.toLocaleUpperCase();
console.log(str6s)
十、ES6的字符串方法
在es6中有一大部分是处理unicode,这部分平时用的很少。记得就行了,万一用到了再去查
1、includes(), startsWith(), endsWith()
let str = 'abc'
str.includes('a') //是否包含
str.startsWith('a') //字符串开始位置是否包含
str.endsWith('c') //字符串结束位置是否包含
2、repeat 原来都认为这个就是替换,如今有了更多的用法
相信再开发中经常会碰到需要造假数据,有时候甚至需要很长的。有了这个后就可以方便的造重复数据了
'abc'.repeat(10) //参数给多少,字符串就重复多少次,很方便
3、padStart(),padEnd()
常用于日期补足2位 如: 2017-1-1 想改成 2017-01-01
'1'.padStart(2, '0') //第一个参数是限制字符串的长度,第二个要补的内容
'1'.padEnd(2, '0') //这个是从结尾处补足
4、字符串模板,这个用的比较多。
let a = 'a'
let b = 'b'
//曾经
console.log(a+b+'c') //曾经几何都是这么用的,如果碰上拼接html还带属性的,那单双引号拼的你头大,虽然这么作本来就不好,但是仍然很多人在用。
//现在
console.log(`${a}${b}c`) / console.log(`${a+b}c`) //把变量用${} 包起来就行了。简单多了。没有那么多单双引,没有加号
5、标签模板
function str(str, v1, v2){}
str `aaa${a} ${b} aaa` //这个写法就相当于把这个字符串传到了function里,里面的参数第一个是纯字符串(被变量隔开后,以数组形式展示),从第二个开始就是字符串里的变量了,有几个变量后面就有几个参数
6、raw
String.raw `abc\nddd` //比如字符串里有\n 输出后不会换行,而直接显示\n