原生的字符串操作方法有哪些?请列举并描述其功能
原生 JavaScript 字符串操作方法有很多,以下列举一些常用的方法及其功能:
基本操作:
charAt(index): 返回指定索引位置的字符。charCodeAt(index): 返回指定索引位置字符的 Unicode 编码。concat(str1, str2, ...): 连接两个或多个字符串,返回一个新字符串。 可以使用+运算符实现相同的功能,通常更简洁。indexOf(substring, start): 返回指定子字符串在字符串中第一次出现的索引,如果找不到则返回 -1。start参数可选,指定开始搜索的索引。lastIndexOf(substring, start): 返回指定子字符串在字符串中最后一次出现的索引,如果找不到则返回 -1。start参数可选,指定开始搜索的索引(从后往前)。length: 返回字符串的长度。slice(start, end): 提取字符串的一部分,从start索引开始,到end索引(不包括end)结束,返回一个新字符串。 如果省略end,则提取到字符串末尾。 负数索引表示从字符串末尾开始计数。substring(start, end): 类似于slice(),但如果start大于end,则会交换它们的值。 负数索引会被视为 0。substr(start, length): 提取字符串的一部分,从start索引开始,提取length个字符。 如果省略length,则提取到字符串末尾。 负数start表示从字符串末尾开始计数。 需要注意的是,substr()方法已经不推荐使用,建议使用slice()方法代替。toLowerCase(): 将字符串转换为小写,返回一个新字符串。toUpperCase(): 将字符串转换为大写,返回一个新字符串。toString(): 返回字符串对象的字符串表示。valueOf(): 返回字符串对象的原始值。
ES6 新增方法:
startsWith(searchString, position): 检查字符串是否以指定的子字符串开头。position参数可选,指定开始搜索的索引。endsWith(searchString, length): 检查字符串是否以指定的子字符串结尾。length参数可选,指定用于检查的字符串长度。includes(searchString, position): 检查字符串是否包含指定的子字符串。position参数可选,指定开始搜索的索引。repeat(count): 将字符串重复指定的次数,返回一个新字符串。trim(): 移除字符串两端的空格,返回一个新字符串。trimStart()/trimLeft(): 移除字符串开头的空格。trimEnd()/trimRight(): 移除字符串结尾的空格。padStart(targetLength, padString): 用给定的字符串填充字符串的开头,直到达到指定的长度。padEnd(targetLength, padString): 用给定的字符串填充字符串的结尾,直到达到指定的长度。
正则表达式相关:
match(regexp): 使用正则表达式搜索字符串,返回匹配结果的数组。matchAll(regexp): 返回一个包含所有匹配结果的迭代器。replace(regexp/substr, newSubstr/function): 用指定的字符串或函数替换匹配的子字符串。replaceAll(regexp/substr, newSubstr/function): 用指定的字符串或函数替换所有匹配的子字符串。(ES2021 新增)search(regexp): 搜索与正则表达式匹配的子字符串,返回第一个匹配的索引。split(separator, limit): 将字符串分割成子字符串数组。
其他:
localeCompare(compareString, locales, options): 比较两个字符串,返回一个数字表示它们的排序顺序。 可以用于国际化排序。
这些方法可以组合使用,实现各种复杂的字符串操作。 选择哪种方法取决于具体的应用场景。 记住,除了 concat() 之外,这些方法都不会修改原始字符串,而是返回一个新的字符串。
希望这个列表对您有所帮助! 如果您有任何其他问题,请随时提出。
浙公网安备 33010602011771号