regex 如何用正则表达式给字符串中的某些字符加前缀?

h4cxqtbf  于 2023-02-05  发布在  其他
关注(0)|答案(1)|浏览(124)

假设如下,

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);

看起来很乱。有更好的办法吗?

kupeojn6

kupeojn61#

使用捕获组。在组()中包含您要替换的字符[!\-.],然后在替换引用中包含组$1。您还需要添加额外的\\以在最终输出中获得2

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

相关问题