JS中字符串常用方法
文章类型:Javascript
发布者:admin
发布时间:2023-02-24
const str = "hello";
str.length; // 输出结果:5
2. 获取字符串指定位置的值
charAt()和 charCodeAt()方法都可以通过索引来获取指定位置的值:
charAt() 方法获取到的是指定位置的字符;
const str = "hello";
str.charAt(1); // 输出结果:e
字符串也可以通过索引值来直接获取对应字符,那它和 charAt()有什么区别呢
const str = "hello";
str.charAt(1); // 输出结果:e
str[1]; // 输出结果:e
str.charAt(5); // 输出结果:''
str[5]; // 输出结果:undefined
可以看到,当 index 的取值不在 str 的长度范围内时,str[index]会返回 undefined,而 charAt(index)会返回空字符串;除此之外,str[index]不兼容 ie6-ie8,charAt(index)可以兼容。
charCodeAt()方法获取的是指定位置字符的 Unicode 值。
let str = "abcdefg";
console.log(str.charCodeAt(1)); // "b" --> 98
3. 检索字符串是否包含特定序列
(1)indexOf() 查找某个字符,有则返回第一次匹配到的位置,否则返回-1
let str = "abcdefgabc";
console.log(str.indexOf("a")); // 输出结果:0
console.log(str.indexOf("z")); // 输出结果:-1
console.log(str.indexOf("c", 4)); // 输出结果:9
(2)lastIndexOf() 查找某个字符,有则返回最后一次匹配到的位置,否则返回-1
查找某个字符,有则返回最后一次匹配到的位置,否则返回-1let str = "abcabc";
console.log(str.lastIndexOf("a")); // 输出结果:3
console.log(str.lastIndexOf("z")); // 输出结果:-1
(3)includes() 用于判断字符串是否包含指定的子字符串。如果找到匹配的字符串则返回 true,否则返回 false
let str = "Hello world!";
str.includes("o"); // 输出结果:true
str.includes("z"); // 输出结果:false
str.includes("e", 2); // 输出结果:false
(4)startsWith() 用于检测字符串是否以指定的子字符串开始。如果是以指定的子字符串开头返回 true,否则 false
let str = "Hello world!";
str.startsWith("Hello"); // 输出结果:true
str.startsWith("Helle"); // 输出结果:false
str.startsWith("wo", 6); // 输出结果:true
(5)endsWith() 用来判断当前字符串是否是以指定的子字符串结尾。如果传入的子字符串在搜索字符串的末尾则返回 true,否则将返回 false
let str = "Hello world!";
str.endsWith("!"); // 输出结果:true
str.endsWith("llo"); // 输出结果:false
str.endsWith("llo", 5); // 输出结果:true
4. 连接多个字符串
concat() 方法用于连接两个或多个字符串。该方法不会改变原有字符串,会返回连接两个或多个字符串的新字符串
let str = "abc";
console.log(str.concat("efg")); //输出结果:"abcefg"
console.log(str.concat("efg", "hijk")); //输出结果:"abcefghijk"
5. 字符串分割成数组
split() 方法用于把一个字符串分割成字符串数组。该方法不会改变原始字符串
let str = "abcdef";
str.split("c"); // 输出结果:["ab", "def"]
str.split("", 4); // 输出结果:['a', 'b', 'c', 'd']
6. 截取字符串
(1) slice() 方法用于提取字符串的某个部分,并以新的字符串返回被提取的部分
let str = "abcdefg";
str.slice(1, 6); // 输出结果:"bcdef"
str.slice(1); // 输出结果:"bcdefg"
str.slice(); // 输出结果:"abcdefg"
str.slice(-2); // 输出结果:"fg"
str.slice(6, 1); // 输出结果:""
(2) substr() 用于在字符串中抽取从开始下标开始的指定数目的字符
let str = "abcdefg";
str.substr(1, 6); // 输出结果:"bcdefg"
str.substr(1); // 输出结果:"bcdefg" 相当于截取[1,str.length-1]
str.substr(); // 输出结果:"abcdefg" 相当于截取[0,str.length-1]
str.substr(-1); // 输出结果:"g"
(3) substring()用于提取字符串中介于两个指定下标之间的字符
let str = "abcdefg";
str.substring(1, 6); // 输出结果:"bcdef" [1,6)
str.substring(1); // 输出结果:"bcdefg" [1,str.length-1]
str.substring(); // 输出结果:"abcdefg" [0,str.length-1]
str.substring(6, 1); // 输出结果 "bcdef" [1,6)
str.substring(-1); // 输出结果:"abcdefg"
7. 字符串大小写转换
(1)toLowerCase()用于把字符串转换为小写。
let str = "adABDndj";
str.toLowerCase(); // 输出结果:"adabdndj"
(2)toUpperCase()用于把字符串转换为大写。
let str = "adABDndj";
str.toUpperCase(); // 输出结果:"ADABDNDJ"
8. 字符串模式匹配
(1)replace()用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
let str = "abcdef";
str.replace("c", "z"); // 输出结果:abzdef
(2)match() 用于在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
let str = "abcdef";
console.log(str.match("c")); // ["c", index: 2, input: "abcdef", groups: undefined]
(3)search() 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串
let str = "abcdef";
str.search(/bcd/); // 输出结果:1
9. 移除字符串收尾空白符
(1)trim()用于移除字符串首尾空白符,该方法不会改变原始字符串
let str = " abcdef ";
str.trim(); // 输出结果:"abcdef"
(2)trimStart()返回一个从原始字符串的开头删除了空白的新字符串,不会修改原始字符串
const s = " abc ";
s.trimStart(); // "abc "
(3)trimEnd()返回一个从原始字符串的结尾删除了空白的新字符串,不会修改原始字符串
const s = " abc ";
s.trimEnd(); // " abc"
10. 获取字符串本身
(1)valueOf() 返回某个字符串对象的原始值
let str = "abcdef";
console.log(str.valueOf()); // "abcdef"
(2)toString()返回字符串对象本身
let str = "abcdef";
console.log(str.toString()); // "abcdef"
11. 重复一个字符串
repeat() 方法返回一个新字符串,表示将原字符串重复 n 次:
"x".repeat(3); // 输出结果:"xxx"
"hello".repeat(2); // 输出结果:"hellohello"
"na".repeat(0); // 输出结果:""
"na".repeat(2.9); // 输出结果:"nana"
12. 补齐字符串长度
(1)padStart()用于头部补全
"1".padStart(3, "0"); // 输出结果: '001'
"15".padStart(3, "0"); // 输出结果: '015'
(2)padEnd()用于尾部补全
"x".padEnd(5, "ab"); // 'xabab'
"x".padEnd(4, "ab"); // 'xaba'
13. 字符串转为数字
(1)parseInt()用于可解析一个字符串,并返回一个整数
parseInt("10"); // 输出结果:10
parseInt("17", 8); // 输出结果:15 (8+7)
parseInt("010"); // 输出结果:10 或 8
(2)parseFloat()可解析一个字符串,并返回一个浮点数
parseFloat("10.00"); // 输出结果:10.00
parseFloat("10.01"); // 输出结果:10.01
parseFloat("-10.01"); // 输出结果:-10.01
parseFloat("40.5 years"); // 输出结果:40.5