Appearance
字符串方法集合
1、charAt
返回指定索引出的字符
javascript
let str = "abcd";
str.charAt(0); // 'a'
2、charCodeAt
返回指定索引出的 unicode 字符
javascript
let str = "abcd";
str.charCodeAt(0); //97
3、indexof
判断一个字符第一次出现在某个字符串的索引,如果包含返回它的索引,如果不包含返回-1
javascript
let str = "abcd";
str.indexOf("a"); //0
str.indexOf("e"); //-1
4、lastIndexOf
判断一个字符最后一次出现在某个字符串的索引,如果包含返回它的索引,如果不包含返回-1
javascript
let str = "abcbd";
str.lastIndexOf("b"); //3
str.lastIndexOf("e"); //-1
5、concat
拼接 2 个字符串,返回一个新字符串,对原有字符串没有任何改变。
javascript
let str1 = "qwe";
let str2 = "abc";
let str3 = str1.concat(str2);
console.log(str3); //"qweabc"
6、substr(start,length)
start 所需的子字符串索引的起始位置。字符串中的第一个字符的索引为 0。
length 截取的长度
javascript
let str = "abcd";
let b = str.substr(2, 2);
console.log(b); //cd
7、substring(start,end)
start指明子字符串的起始位置,该索引从 0 开始起算。 end指明子字符串的结束位置,该索引从 0 开始起算。
substring 方法使用 start 和 end 两者中的较小值作为子字符串的起始点。
如果 start 或 end为 NaN 或者为负数,那么将其替换为0。
javascript
let str = "abcd";
let str2 = str.substring(1, 3);
let str3 = str.substring(3, 1);
let str4 = str.substring(-2, 3);
console.log(str2); //'bc'
console.log(str3); //'bc'
console.log(str4); //'abc'
8、slice(start,end)
start开始字符位置的索引。
如果start 为负,将它作为length+start 处理,此处 length 为字符串的长度。
end结束字符位置的索引,不包括。
如果end 为负,将它作为length+end 处理,此处 length 为字符串的长度。
javascript
let str = "abcde";
let str1 = str.slice(1, 3);
let str2 = str.slice(-3, -1);
console.log(str1); //'bcd'
console.log(str2); //'bcd'
9、split(separator,limit)
separator 字符串或正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。
如果忽略该选项,返回包含整个字符串的单一元素数组。
用指定字符分割字符串,返回一个数组
limit该值用来限制返回数组中的元素个数。
javascript
let str = "abcd";
var str1 = str.split("");
let str2 = str.split("", 3);
let str3 = str.split("b");
console.log(str1); //["a", "b", "c", "d"]
console.log(str2); //["a", "b", "c"]
console.log(str3); //["a", "cd"]
10、replace
替换指定字符,返回替换后新的字符串,对原有字符串有改变。
第一个参数可以是正则表达式,只能替换一次 ,配合正则模式修饰符 g 使用
javascript
let str = "aaaaee";
let reg = /a/g;
//或者
let reg = new RegExp("a", "g");
str.replace(reg, 1); //"1111ee"
11、match
可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。把找到的字符放在数组里,返回一个数组。
javascript
let str = "aaaa3ed33";
let reg = /a/g;
str.match(reg); //["a", "a", "a", "a"]
12、search(reExp)
返回与正则表达式查找内容匹配的第一个字符串的位置。
javascript
let str = "abcd";
let str1 = str.rearch("bc");
let str2 = str.rearch(/bc/i);
console.log(str1); //1
console.log(str2); //1
13、toLowerCase()
字符串中的字母被转换成小写
javascript
let str = "ABCD";
let str1 = str.toLowerCase();
console.log(str1); //abcd
14、toUpperCase()
字符串中的字母转换成大写
javascript
let str = "abcd";
let str1 = str.toLowerCase();
console.log(str1); //ABCD
es6 新增加的方法
15、codePointAt()
能够正确处理 4 个字节储存的字符,返回一个字符的码点。
测试一个字符由两个字节还是由四个字节组成的最简单方法
javascript
function is32Bit(c) {
return c.codePointAt(0) > 0xffff;
}
is32Bit("𠮷"); // true
is32Bit("a"); // false
16、fromCharCode 与 fromCodePoint
String.fromCharCode方法,用于从码点返回对应字符,但是这个方法不能识别 32 位的 UTF-16 字符(Unicode 编号大于 0xFFFF)。
javascript
String.fromCharCode(0x20bb7);
// "ஷ"
String.fromCodePoint方法,可以识别大于 0xFFFF 的字符,弥补了String.fromCharCode方法的不足。在作用上,正好与codePointAt方法相反。
javascript
String.fromCodePoint(0x20bb7); // "𠮷"
17、includes startsWith 与 endsWith
includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
javascript
let str = "abcd";
let str1 = str.includes("bc"); //true
let str2 = str.startsWith("a"); //true
let str3 = str.endsWith("d"); //true
这三个方法都支持第二个参数,表示开始搜索的位置。
javascript
let str = "abcd";
let str4 = str.includes("bc", 1);
let str5 = str.startsWith("bc", 0);
let str6 = str.endsWith("d", 3);
console.log(str4); //true
console.log(str5); //false
console.log(str6); //false
18、repeat()
返回一个新字符串,表示将原字符串重复 n 次
javascript
let str = "abcd";
let str1 = str.repeat(3);
console.log(str1); //'abcdabcdabcd'
19、padStart(len,str)与 padEnd(len,str)
字符串补全长度的功能。
如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。
padStart 和 padEnd 一共接受两个参数
第一个参数用来指定字符串的最小长度
第二个参数是用来补全的字符串。
javascript
let str = "a";
let str1 = str.padStart(5, "123");
let str2 = str.padEnd(5, "123");
console.log(str1); //'1231a'
console.log(str2); //'a1231'
如果原字符串的长度>=len,则返回原字符串
javascript
"abc".padStart(2, "123"); //'abc'
如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度 len,则会截去超出位数的补全字符串。
javascript
"abc".padStart(10, "0123456789");
// '0123456abc'
如果省略第二个参数,默认使用空格补全长度
javascript
"x".padStart(4); // ' x'
"x".padEnd(4); // 'x '
20、模板字符串
javascript
let user = {
name: "list",
info: "hello world"
};
console.log(`i am ${user.name},${user.info}`);
//i am list,hello world
21、raw()
javascript
`Hi\n${1 + 2}`;
String.raw`Hi\n${1 + 2}`;
//防止\n被转译换行