2017-09-05 59 views
0

我想用悲伤的表情符号来改变我的键盘字符,使用html十进制代码和javascript正则表达式。我只是想混为一谈两个字符“:”和“(” 我怎么能写emojiSmile正则表达式变量使用正则表达式的十进制表情符号

这里是我下面的代码

var finalAnswer = ':)'; 
var emojiSmile = /\:+[)]/g; 
var emojiSmileDecimal = '😊'; 


if (finalAnswer.match(emojiSmile)) { 
    var emojies = finalAnswer.replace(emojiSmile, emojiSmileDecimal); 
} 
+1

你问如何渲染符号?像[这里](https://jsfiddle.net/kh3x7156/)?你是否试图在控制台中检查结果?然后,为了达到同样的效果,使用'var emojiSmileDecimal =“\ uD83D \ uDE0A”' –

+0

@WiktorStribiżew实际上渲染符号没有问题,但我不能混淆特殊字符。例如试图使用; var emojiSmile = /:\)/ g,emojiSad = /:\(/ g;但是它呈现的是单独的并且只显示emojiSmile。 –

+0

不好意思,但是这与你发布的内容有些不同。你好像想用多个值替换,对吗? –

回答

0

它已经可以作为你写的?。

从第一原理,你只需要逃避)作为\)因为这是一个特殊字符在正则表达式语法:

var emojiSmile = /:\)/g; 

与括号([)])逃脱它,像你这样,也可以工作:

var emojiSmile = /:[)]/g; 

没有必要逃避:或把一个+背后(除非你想匹配::::)为好)。

+0

但是OP已经在字符类中使用了')',并且不需要转义它。请参阅[是“适合我”的答案有效?](https://meta.stackexchange.com/questions/118992/are-works-for-me-answers-valid) –

+0

OP的正则表达式也会做同样的 – marvel308