js字符串替换的正则表达式如何动态生成

今天遇到一个问题,在js页面里面要动态替换用户聊天过程中的表情标签,每个表情的标签不一样,而且可能出现多个所以替换的时候必须使用全局替换/g模式,但是把标签文本跟正则字符拼接后string的replace方法不能执行,文本都替换不掉。

最后在网上找到一个方法先把正则的文本和拼接的文本放在一个字符串里面,然后使用eval方法执行一下这个字符串,出来的就是可替换的正则字符串了。

1         var str = "[微笑][微笑][微笑][微笑][微笑][微笑]"
2         rstr = "微笑"
3         regstr = '/\\\['+rstr+'\\\]/g'
4         console.log(str.replace(eval(regstr),'imgaaa'))

 

posted on 2016-07-29 14:29  jurui  阅读(3085)  评论(0编辑  收藏  举报