js全局正则匹配问题

        var data = document.getElementById('data')
        let str = '丽yuan和yuAn'
        let reg = 'a'
        let rr = 'n'
        let result = str.replace(new RegExp(reg, 'gi'), `<span style="color: red;">${reg}</span>`)
        let r = result.replace(new RegExp(rr, 'gi'), `<span style="color: red;">${rr}</span>`)
        data.innerHTML = r

如何解决以下问题:
image.png

阅读 1.3k
2 个回答

不能一次性替换吗。。

str.replace(/a|n/gi, (s)=>{
    // ..添加区分a和n的逻辑
    return `<span style="color: red;">${s}</span>`
})

image.png

result:
丽yu<span style="color: red;">a</span>n和yu<span style="color: red;">a</span>n

相当于把 '丽yuan和yuAn' 中的'a'和'A'都换了,结果没错呀。r在上面的基础上,又把n都换了。

这不是你的替换逻辑问题吗。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题