javascript字符串方法均返回新字符串且不修改原串,核心包括:查找判断(includes/startswith/endswith/indexof/match)、截取切分(slice/substring/split)、替换格式化(replace支持正则与函数)、大小写标准化(tolocalelowercase/normalize)。

JavaScript 的 String.prototype 提供了一套成熟、不可变(不修改原字符串)、语义清晰的文本处理方法。掌握它们的关键不是死记所有 API,而是理解每类操作的典型场景和使用边界。
查找与判断:快速定位或验证内容
这类方法返回布尔值或索引,适合做条件判断或预检:
-
includes(substring):检查是否含子串,比
indexOf !== -1更直观,推荐日常使用 - startsWith(prefix) / endsWith(suffix):常用于文件扩展名、URL 协议、CSS 类名前缀等判断
-
indexOf(searchValue) / lastIndexOf(searchValue):需要具体位置时用,比如提取路径最后一段:
path.substring(path.lastIndexOf('/') + 1) -
match(regex):配合正则做结构化提取,如
"id=123".match(/id=(\d+)/)[1]取出数字
截取与切分:安全获取子串或拆成片段
注意三者差异,避免误用:
-
slice(start, end):支持负数索引(
-1表示末尾),最灵活,推荐作为默认选择 -
substring(start, end):自动交换大小参数,
substring(5, 2)等价于substring(2, 5),适合不确定顺序的场景 - substr(start, length):已废弃,不要在新代码中使用
-
split(separator, limit):按分隔符切分,
split(' ')处理空格,split('')拆成字符数组;加limit可控制结果长度,如只取前两段路径
替换与格式化:精准修改内容
replace() 是核心,功能远超“找一个换一个”:
- 只传字符串:仅替换第一个匹配,如
"a a a".replace("a", "b")→"b a a" - 用正则 +
g标志:实现全局替换,如"a a a".replace(/a/g, "b")→"b b b" - 用函数作替换值:动态生成结果,例如把大括号变量替换成实际值:
"Hello {name}".replace(/{(\w+)}/g, (_, key) => data[key] || "") - 利用特殊符号:在字符串替换值中写
$1引用捕获组,$&表示整个匹配,$$输出字面量$
大小写与标准化:适配多语言与显示需求
别只用 toLowerCase(),注意本地化差异:
- toLowerCase() / toUpperCase():基础转换,适用于 ASCII 场景
- toLocaleLowerCase() / toLocaleUpperCase():按系统区域设置处理,对土耳其语
i/I、德语 ß 等更准确 - normalize(form):处理 Unicode 等价形式,比如带重音符号的字符可能有多种编码方式,统一后才可安全比较或搜索
这些方法都返回新字符串,原字符串始终不变。组合使用时建议链式调用,例如:str.trim().toLowerCase().replace(/\s+/g, '-') 生成 URL 友好 slug。不复杂但容易忽略细节。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











