2017-09-05 41 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