javascript字符串如何操作_有哪些常用字符串方法【教程】

12次阅读

javaScript字符串不可变,所有“修改”操作均返回新字符串;replace()默认只替换首个匹配项,全量替换需/g标志或replaceAll();split()对空格等需谨慎处理;推荐includes()判断子串,注意NULL/undefined报错。

javascript字符串如何操作_有哪些常用字符串方法【教程】

javascript 字符串是不可变的原始类型,所有“修改”操作实际都返回新字符串——这是绝大多数意外行为的根源。

为什么 str.replace() 只替换第一个匹配项?

因为默认只替换首个匹配,除非传入全局正则表达式。常见错误是写 str.replace('a', 'b') 以为能全量替换,结果只换掉第一个 'a'

  • 全量替换用 str.replace(/a/g, 'b')(注意 /g 标志)
  • 或改用 str.replaceAll('a', 'b')(ES2021+,但 IE 不支持)
  • 若需动态构造正则,记得转义特殊字符,否则 replace(new regexp(userInput, 'g'), ...) 可能报错

split() 遇到空字符串或连续分隔符怎么处理?

split('') 会把字符串拆成单字符数组;split(' ') 遇到多个空格时,中间会产生空字符串元素。

  • 'a b'.split(' ')['a', '', 'b'],不是 ['a', 'b']
  • 安全做法:先 trim()split(/s+/) 处理任意空白
  • split('') 在 Unicode 字符(如 emoji、带音标字母)上可能出错,推荐用 [...str]Array.from(str)

判断字符串是否包含子串,该用 includes() 还是 indexOf()

优先用 includes():语义清晰、返回布尔值,避免 indexOf() !== -1 的冗余写法。

立即学习Java免费学习笔记(深入)”;

  • includes() 支持第二个参数(起始位置),但不支持正则;search() 才支持正则查找
  • 需要获取位置信息时才用 indexOf()lastIndexOf()
  • 大小写敏感是默认行为,忽略大小写请先转成统一大小写,或用 search(/pattern/i)

字符串方法大多不修改原串,但容易在链式调用中误以为某个方法改变了它;另外,所有方法对 nullundefined 调用都会报 TypeError: Cannot read Property 'xxx' of null——这点常被忽略。

text=ZqhQzanResources