登录
首页 >  文章 >  前端

JavaScript字符串操作技巧及常用方法详解

时间:2026-03-05 17:01:42 500浏览 收藏

JavaScript字符串看似简单,实则暗藏玄机:它作为不可变原始类型,所有“修改”操作都返回新字符串而非原地变更;Unicode支持(如emoji和中文截取)、环境兼容性(如replaceAll与trim的浏览器支持差异)以及语义陷阱(如replace默认不全局替换)是开发者高频踩坑的三大根源——掌握includes判断子串、Array.from安全截取、replaceAll或正则全局替换、以及自定义正则去除全角空白等关键技巧,才能真正写出健壮可靠的字符串处理代码。

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

JavaScript 字符串是原始类型,不可变——所有“修改”操作实际都返回新字符串,原字符串不变。这点不理解,后续踩坑会非常多。

如何判断字符串是否包含某个子串

别再用 indexOf() !== -1 手动判断了,ES6 起直接用 includes()

  • str.includes('abc') 返回布尔值,支持第二个参数指定起始位置
  • 注意大小写敏感,如需忽略大小写,先转成统一大小写:str.toLowerCase().includes('abc')
  • indexOf() 没过时,但仅当你需要知道位置时才用;search() 支持正则但不支持全局标志 g,容易误判

如何安全地截取字符串(尤其含 emoji 或中文)

substring()slice() 前必须意识到:JavaScript 字符串基于 UTF-16 编码,一个 emoji(如 ?)或某些生僻汉字可能占 2 个 code unit。直接按索引截取会得到乱码(如 '?'.substring(0, 1) 返回 '')。

  • 优先用 Array.from(str)[...str] 转为真正字符数组,再操作:Array.from(str).slice(0, 3).join('')
  • Node.js 16+ 或现代浏览器可用 Intl.Segmenter(更准确切分字形),但兼容性差,日常简单场景够不着
  • substr() 已废弃,不要用

如何替换所有匹配项(不止第一个)

replace() 默认只换第一个匹配,这是高频翻车点。

  • 要全局替换,正则必须带 g 标志:str.replace(/a/g, 'b')
  • 若替换内容来自变量,需手动转义正则特殊字符,或改用 replaceAll()(ES2021+):str.replaceAll(searchStr, replaceStr)
  • replaceAll() 不支持正则(只接受字符串),且在旧环境(如 Safari 15.4 之前)不可用,上线前务必检查目标环境

如何去除首尾空白(包括全角空格、NBSP 等)

trim() 只处理 ASCII 空白(U+0009–U+000D、U+0020、U+0085、U+200B–U+200F、U+2028–U+2029),对中文全角空格(U+3000)、不间断空格(U+00A0)无效。

  • 通用方案:str.replace(/^[\s\uFEFF\xA0\u3000]+|[\s\uFEFF\xA0\u3000]+$/g, '')
  • 如确定只处理中文环境,可简化为:str.replace(/^[ \s]+|[ \s]+$/g, '')  是全角空格)
  • Node.js 18+ 支持 trimStart()/trimEnd() 的增强版,但浏览器兼容性仍不齐,慎用

字符串方法看着简单,但 Unicode 处理、环境兼容、不可变语义这三点,才是真实项目里最常卡住人的地方。

理论要掌握,实操不能落!以上关于《JavaScript字符串操作技巧及常用方法详解》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>