2017-09-05 2 views
0

Ich möchte meine Tastatur Zeichen mit traurigen Emoji mit HTML-Dezimal-Code und Javascript regex ändern. Ich will nur, dass zwei Charaktere conflate ‚:‘ und ‚(‘ Wie kann ich schreiben, dass emojiSmile regex VariableDezimal Emoji mit Regex

Hier mein Code ist unter

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


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

Fragen Sie, wie man * das Symbol * rendert? Wie [hier] (https://jsfiddle.net/kh3x7156/)? Versuchen Sie, das Ergebnis in der Konsole zu überprüfen? Dann, um das gleiche zu erreichen, verwenden Sie 'var emojiSmileDecimal =" \ uD83D \ uDeOA "' –

+0

@ WiktorStribiżew tatsächlich gibt es kein Problem mit dem Symbol rendern, aber ich konnte keine Sonderzeichen zusammenfassen. zum Beispiel versuchen zu verwenden; var emojiSmile = /: \)/g, emojiSad = /: \ (/ g; aber es wird separat gerendert und nur emojiSmile angezeigt. –

+0

Entschuldigung, aber das ist etwas anderes als das, was du gepostet hast. Bitte aktualisiere die Frage mit der Sie scheinen mit mehreren Werten zu ersetzen, richtig? –

Antwort

0

Es funktioniert schon, wie Sie es geschrieben haben?..

Von dem ersten Prinzipien, brauchen Sie nur die ) als \) zu entkommen, weil es ein spezielles Zeichen in regex Syntax ist:

var emojiSmile = /:\)/g; 

Escaping es mit Klammern ([)]), wie Sie haben, auch funktioniert:

var emojiSmile = /:[)]/g; 

Es besteht keine Notwendigkeit : zu entkommen oder eine + hinter sich zu lassen (es sei denn, Sie ::::) passen auch wollen).

+0

Aber OP verwendet bereits ')' innerhalb einer Zeichenklasse und muss nicht entkommen. Siehe [Sind Antworten auf "Arbeitet für mich" gültig?] (Https://meta.stackexchange.com/questions/118992/are-works-for-me-answers-valid) –

+0

Die Regex-Anweisung des OP würde das gleiche tun – marvel308