es6为string.prototype新增语义清晰的字符串方法:includes()判断包含、startswith()判断开头、endswith()判断结尾,均返回布尔值并支持起始位置参数;另有repeat()、padstart()/padend()、trimstart()/trimend()、replaceall()、at()等实用方法。

ES6 在 String.prototype 上新增了一批语义清晰、使用直观的字符串方法,替代了过去依赖 indexOf !== -1 等略显繁琐的写法。它们统一返回布尔值,逻辑明确,支持可选起始位置参数,日常开发中用得非常频繁。
判断子串是否存在:includes()
检查目标字符串是否**包含**指定子串,返回 true 或 false。
- 基础用法:
"Hello".includes("ll") // true - 区分大小写:
"Hello".includes("h") // false - 第二个参数表示从第几个索引开始搜索(含):
"Hello".includes("l", 3) // true(从索引3开始找,找到最后一个'l') - 注意:它不支持正则,只接受字符串;若传入正则会报错
判断是否以某段开头:startsWith()
检查字符串是否**从头部起**匹配指定前缀。
- 基础用法:
"JavaScript".startsWith("Java") // true - 可指定起始位置:
"JavaScript".startsWith("Script", 4) // true(从索引4开始,即'S'起) - 该位置是搜索起点,不是截取起点;超出长度则直接返回 false
判断是否以某段结尾:endsWith()
检查字符串是否**以指定后缀结尾**。
- 基础用法:
"filename.txt".endsWith(".txt") // true - 第二个参数含义不同:它表示**只在前 N 个字符内检查结尾**,不是起始索引:
"hello".endsWith("lo", 4) // true(只看前4个字符 "hell",但"lo"不在其尾部 → 实际为 false?等下) - 更准确的例子:
"hello".endsWith("lo", 5) // true(前5个字符就是整个字符串,结尾确实是"lo")"hello".endsWith("lo", 3) // false(只看前3个字符 "hel",结尾不是"lo")
其他高频实用方法
除了以上三个判断类方法,ES6 还补充了多个提升开发效率的字符串操作:
-
repeat(n):重复生成新字符串,"x".repeat(3) // "xxx",n 为小数时向下取整 -
padStart(maxLength, padStr)和padEnd(maxLength, padStr):用于格式对齐,比如补零:"5".padStart(3, "0") // "005" -
trimStart()/trimEnd():分别去除首尾空格,比trim()更精准 -
replaceAll(searchValue, replaceValue):全局替换(区别于只换第一个的replace()),支持字符串或正则 -
at(index):安全获取字符,支持负索引:"abc".at(-1) // "c",比str[str.length-1]更简洁
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











