You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用正则表达式为字符串中的特定字符添加前缀?

问题描述

假设存在以下字符串:

const str = `
    hello!
    proceed - click button below.
`

需要为特定字符(!、-、.)添加\前缀,期望得到如下结果:

`
    hello\!
    proceed \- click button below\.
`

目前的实现方式如下,写法较为繁琐,想知道是否有更优的实现:

const str = `
    hello!
    proceed - click button below.
`.replace(/!/gm, '\\!').replace(/-/gm, '\\-').replace(/\./gm, '\\.')

console.log(str);
优化实现方式

可以用字符集正则一次性匹配所有需要转义的字符,只调用一次replace方法,代码更简洁高效:

const str = `
    hello!
    proceed - click button below.
`.replace(/[!.-]/gm, '\\$&')

console.log(str);

简单解释:

  • [!.-] 是正则的字符集合,能一次性匹配!、-、.这三个目标字符(把-放在字符集末尾,避免被识别为范围符号)
  • 替换用的\\$&里,$&会自动指代匹配到的每个字符,前面加\\就完成了统一转义
  • 保留原代码的gm修饰符,确保全局所有符合的字符都被替换,同时适配多行场景

内容的提问来源于stack exchange,提问作者Mike K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 13:55:40