2017-09-05 1 views
0

Je veux changer mon caractère de clavier avec emoji triste en utilisant le code décimal html et javascript regex. Je veux juste amalgamer que deux caractères « : » et « (» Comment puis-je écrire cette variable emojiSmile regexemoji décimal avec l'utilisation regex

Voici mon code ci-dessous

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


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

Demandez-vous comment * rendre * le symbole? Comme [ici] (https://jsfiddle.net/kh3x7156/)? Essayez-vous de vérifier le résultat dans la console? Ensuite, pour atteindre le même, utilisez 'var emojiSmileDecimal =" \ uD83D \ uDE0A "' –

+0

@ WiktorStribiżew en fait il n'y a pas de problème avec le rendu du symbole, mais je ne pouvais pas confondre les caractères spéciaux. par exemple en essayant d'utiliser; var emojiSmile = /: \)/g, emojiSad = /: \ (/ g; mais il est rendu séparément et affiche simplement emojiSmile –

+0

Excusez-moi, mais c'est quelque chose de différent de ce que vous avez posté. Vous semblez vouloir remplacer par des valeurs multiples, n'est-ce pas? –

Répondre

0

Il fonctionne déjà comme vous l'avez écrit?..

des premiers principes, il vous suffit d'échapper à la ) comme \) parce qu'il est un caractère spécial dans la syntaxe regex:

var emojiSmile = /:\)/g; 

Échapper avec crochets ([)]), comme vous l'avez fait, fonctionne aussi:

var emojiSmile = /:[)]/g; 

Il n'y a pas besoin d'échapper : ou de mettre un + derrière (sauf si vous voulez faire correspondre ::::) aussi bien).

+0

Mais OP utilise déjà ')' dans une classe de caractères et n'a pas besoin de l'échapper. Voir [Les "travaux pour moi" sont-ils valides?] (Https://meta.stackexchange.com/questions/118992/are-works-for-me-answers-valid) –

+0

l'expression rationnelle de l'OP ferait aussi la même chose – marvel308