我知道这个问题已经问了很多时间,但是我找不到解决方案。我有一些表情符号,每个表情符号都有使用replace()呈现为笑脸的代码,但出现语法错误,我不知道为什么以及如何将我的代码:/
呈现为笑脸
txt = " Hi :/ ";
txt.replace("/\:/\/g","<img src='img/smiley.gif'>");
答案 0 :(得分:9)
您的正则表达式不需要用引号引起来。您应该转义正确的/
前斜杠(转义了错误的斜杠)并指定替换项,因为.replace
不会修改原始字符串。
txt = " Hi :/ ";
txt = txt.replace(/:\//g,"<img src='img/smiley.gif'>");
基于jonatjano的精妙演绎,我认为您应该在正则表达式中添加一些内容,以避免诸如干扰URL之类的灾难。
txt = txt.replace(/:\/(?!/)/g,"<img src='img/smiley.gif'>");
以上内容通过进行negative-lookahead确保://
是不匹配。
答案 1 :(得分:2)