引言
在上一篇文章中我们对 JavaScript 中数组的常见 API 进行了一个总结,那么接下来我们对 JavaScript 的字符串的常见 API 进行一个总结。
通过理解每种方法的参数、返回值及其应用场景,你可以更灵活地处理字符串操作,满足不同的需求。在实际开发中,合理利用这些方法可以提高代码的可读性和开发效率。
JavaScript 字符串常用方法
字符串的增加
1. concat()
- 参数:一个或多个要连接的字符串。
- 返回值:连接后的新字符串。
- 说明:将一个或多个字符串连接在一起,返回一个新字符串,原字符串不变。
let str1 = 'Hello';
let str2 = 'World';
let result = str1.concat(' ', str2); // result = "Hello World"
应用场景:构建动态字符串,例如生成用户欢迎消息时。
字符串的删除
1. slice()
-
参数:
①.
start
:开始索引(包含)。②.
end
(可选):结束索引(不包含)。如果省略,则到字符串末尾。 -
返回值:从
start
到end
(不包含)之间的子字符串。 -
说明:提取字符串的一部分,并返回一个新的字符串,原字符串不变。
let str = 'Hello World';
let substr = str.slice(6, 11); // substr = "World"
应用场景:从字符串中提取特定部分,如截取文件名。
2. substring()
-
参数:
①.
start
:开始索引(包含)。②.
end
(可选):结束索引(不包含)。如果省略,则到字符串末尾。 -
返回值:从
start
到end
(不包含)之间的子字符串。 -
说明:提取字符串的一部分,并返回一个新的字符串,原字符串不变。
substring()
不接受负值参数,如果有负值会将其转换为 0。
let str = 'Hello World';
let substr = str.substring(6, 11); // substr = "World"
应用场景:提取字符串中的某个片段,如用户输入的子串提取。
3. substr()
-
参数:
①.
start
:开始索引(包含)。②.
length
(可选):要提取的字符数。 -
返回值:从
start
开始的指定长度的子字符串。 -
说明:提取字符串的一部分,并返回一个新的字符串,原字符串不变。
substr()
方法在较新的规范中已经被弃用,建议使用slice()
或substring()
。
let str = 'Hello World';
let substr = str.substr(6, 5); // substr = "World"
字符串的修改
1. replace()
-
参数:
①.
searchValue
:要替换的子字符串或正则表达式。②.
newValue
:替换成的字符串。 -
返回值:替换后的新字符串。
-
说明:用
newValue
替换searchValue
,如果searchValue
是正则表达式且带有全局标志g
,会替换所有匹配项,否则只替换第一个匹配项。
let str = 'Hello World';
let newStr = str.replace('World', 'JavaScript'); // newStr = "Hello JavaScript"
应用场景:更新字符串内容,如在表单提交后替换占位符。
2. trim()
- 参数:无。
- 返回值:删除首尾空白字符后的新字符串。
- 说明:去除字符串两端的空白字符(包括空格、换行符等)。
let str = ' Hello World ';
let trimmedStr = str.trim(); // trimmedStr = "Hello World"
应用场景:清理用户输入的多余空白,如表单字段校验。
3. trimLeft() / trimStart()
- 参数:无。
- 返回值:删除字符串开头的空白字符后的新字符串。
- 说明:去除字符串开头的空白字符(包括空格、换行符等)。
let str = ' Hello World ';
let trimmedStr = str.trimStart(); // trimmedStr = "Hello World "
应用场景:处理需要去除左侧空白的场景,如文本对齐。
4. trimRight() / trimEnd()
- 参数:无。
- 返回值:删除字符串末尾的空白字符后的新字符串。
- 说明:去除字符串末尾的空白字符(包括空格、换行符等)。
let str = ' Hello World ';
let trimmedStr = str.trimEnd(); // trimmedStr = " Hello World"
应用场景:处理需要去除右侧空白的场景,如格式化输出结果。
5. toUpperCase()
- 参数:无。
- 返回值:将所有字符转换为大写后的新字符串。
- 说明:将字符串中的所有字符转换为大写,原字符串不变。
let str = 'Hello World';
let upperStr = str.toUpperCase(); // upperStr = "HELLO WORLD"
应用场景:进行不区分大小写的比较或输出。
6. toLowerCase()
- 参数:无。
- 返回值:将所有字符转换为小写后的新字符串。
- 说明:将字符串中的所有字符转换为小写,原字符串不变。
let str = 'Hello World';
let lowerStr = str.toLowerCase(); // lowerStr = "hello world"
应用场景:进行不区分大小写的比较或标准化输入。
7. padStart()
-
参数:
①.
targetLength
:目标字符串长度。②.
padString
(可选):用于填充的字符串,默认是空格。 -
返回值:填充后的新字符串,原字符串不变。
-
说明:将原字符串填充到目标长度,填充字符放在字符串开头。
let str = '5';
let paddedStr = str.padStart(3, '0'); // paddedStr = "005"
应用场景:格式化数字,例如在表单中显示编号或货币格式。
8. padEnd()
-
参数:
①.
targetLength
:目标字符串长度。②.
padString
(可选):用于填充的字符串,默认是空格。 -
返回值:填充后的新字符串,原字符串不变。
-
说明:将原字符串填充到目标长度,填充字符放在字符串末尾。
let str = '5';
let paddedStr = str.padEnd(3, '0'); // paddedStr = "500"
应用场景:格式化文本输出,例如对齐列宽度。
字符串的查找
1. charAt()
-
参数:
index
:要获取字符的索引。 -
返回值:指定索引处的字符。
-
说明:返回字符串中指定索引的字符,如果索引超出范围,则返回空字符串。
let str = 'Hello';
let char = str.charAt(1); // char = 'e'
应用场景:提取特定位置的字符,如处理密码字符时。
2. startsWith()
-
参数:
①.
searchString
:要搜索的字符串。②.
position
(可选):开始搜索的位置,默认为 0。 -
返回值:布尔值,表示字符串是否以
searchString
开头。 -
说明:检查字符串是否以指定的子字符串开始。
let str = 'Hello World';
let starts = str.startsWith('Hello'); // starts = true
应用场景:验证字符串的前缀,例如检查 URL 是否符合特定模式。
3. endsWith()
-
参数:
①.
searchString
:要搜索的字符串。②.
length
(可选):要检查的字符串长度。 -
返回值:布尔值,表示字符串是否以
searchString
结尾。 -
说明:检查字符串是否以指定的子字符串结尾。
let str = 'Hello World';
let ends = str.endsWith('World'); // ends = true
应用场景:验证文件扩展名或 URL 后缀。
4. indexOf()
-
参数:
①.
searchValue
:要查找的子字符串。②.
fromIndex
(可选):开始搜索的位置,默认为 0。 -
返回值:子字符串首次出现的位置索引,如果未找到则返回 -1。
-
说明:查找子字符串首次出现的位置。
let str = 'Hello World';
let index = str.indexOf('World'); // index = 6
应用场景:查找子字符串位置,例如搜索文本中的关键字。
5. lastIndexOf()
-
参数:
①.
searchValue
:要查找的子字符串。②.
fromIndex
(可选):开始搜索的位置,从右到左搜索,默认为字符串末尾。 -
返回值:子字符串最后一次出现的位置索引,如果未找到则返回 -1。
-
说明:查找子字符串最后一次出现的位置。
let str = 'Hello World World';
let index = str.lastIndexOf('World'); // index = 12
应用场景:查找子字符串最后出现的位置,如处理日志文件时。
6. includes()
-
参数:
①.
searchString
:要查找的子字符串。②.
position
(可选):开始搜索的位置,默认为 0。 -
返回值:布尔值,表示字符串是否包含
searchString
。 -
说明:检查字符串是否包含指定的子字符串。
let str = 'Hello World';
let contains = str.includes('World'); // contains = true
应用场景:检查用户输入是否符合特定条件,如检查邮件地址是否有效。
7. search()
-
参数:
regexp
:正则表达式对象。 -
返回值:正则表达式匹配的位置索引,如果未找到则返回 -1。
-
说明:使用正则表达式搜索字符串,并返回匹配项的起始位置。
let str = 'Hello World';
let index = str.search(/World/); // index = 6
应用场景:在文本中查找正则表达式匹配的内容,如文本分析。
8. match()
-
参数:
regexp
:正则表达式对象。 -
返回值:匹配结果数组。如果
regexp
有全局标志g
,返回所有匹配项的数组,否则返回第一个匹配项的数组。如果没有匹配项则返回null
。 -
说明:根据正则表达式匹配字符串,并返回匹配结果。
let str = 'Hello World World';
let matches = str.match(/World/g); // matches = ["World", "World"]
应用场景:提取字符串中的多个匹配项,如提取所有匹配的电子邮件地址。
字符串的转换
split()
-
参数:
①.
separator
:分隔符,可以是字符串或正则表达式。②.
limit
(可选):返回的数组的最大长度。 -
返回值:由分隔符分割后的子字符串组成的数组。
-
说明:将字符串分割成数组,分隔符决定了分割的位置。
let str = 'a,b,c';
let arr = str.split(','); // arr = ["a", "b", "c"]
应用场景:处理由特定分隔符分隔的字符串,如 CSV 文件解析。
总结
理解并灵活运用这些字符串方法,可以大大提升你在处理文本数据时的能力,确保代码更加高效、清晰和易于维护。在实际开发中,掌握这些方法将使你在数据处理、格式化输出和文本分析方面游刃有余。