JavaScript字符串查找替换需按需选函数:includes()判断存在;indexOf()/lastIndexOf()找位置;search()配合正则查首匹配;match()获取完整匹配信息;replace()默认只换首个,全局需/g正则或replaceAll();startsWith()/endsWith()判断前后缀;slice()推荐截取;split()分割字符串。

JavaScript 字符串的查找与替换方法很丰富,关键在于按需选对函数,避免常见误区,比如只替换了第一个匹配项却以为是全部替换。
常用查找方法怎么选
根据目的不同,选法不一样:
-
只判断是否存在:用
includes(),返回true或false,简洁安全; -
要找位置且不涉及正则:用
indexOf()(从左往右第一个)或lastIndexOf()(从右往左最后一个),都返回索引,找不到是-1; -
要配合正则表达式查位置:用
search(),只返回首个匹配起始索引,忽略g标志; -
要获取完整匹配信息(含捕获组、位置等):用
match(),带g返回所有匹配字符串数组,不带则返回详细对象(含index和input属性)。
替换一个还是替换全部
这是最容易出错的地方:
-
replace()默认只换第一个匹配项,哪怕字符串里有多个相同子串; - 想全局替换,必须传入带
g标志的正则,例如/abc/g; -
replaceAll()是 ES2021 新增方法,支持直接用字符串参数做全量替换,比如"aabb".replaceAll("a", "x")→"xxbb",但注意它不支持部分老浏览器; - 如果需要动态生成替换内容(比如把每个数字加括号),
replace()的第二个参数可以是函数,接收匹配结果、位置、原字符串等参数。
大小写、前后缀这些判断也很实用
虽然不算严格意义上的“查找”,但日常高频使用:
立即学习“Java免费学习笔记(深入)”;
-
startsWith()和endsWith()判断开头或结尾是否符合某段文本,可选起始/长度参数; -
toLowerCase()和toUpperCase()处理大小写统一,常配合查找一起用(比如忽略大小写的搜索); - 若需忽略大小写搜索,推荐用正则:
str.search(/hello/i)或str.match(/hello/gi)。
别忘了还有截取和分割
查找之后常要提取或拆分:
-
slice(start, end)支持负数索引(如-2表示倒数第二个字符),推荐优先使用; -
substring()不支持负数,负值会被当作0; -
split(separator)可用字符串或正则作分隔符,返回数组,比如"a,b,c".split(",")→["a","b","c"]。


















