Comment supprimer le code emoji en utilisant javascript?
Comment puis-je supprimer emoji code à l'aide de JavaScript? Je pensais que j'avais pris soin de lui à l'aide du code ci-dessous, mais j'ai encore des personnages comme 🔴.
function removeInvalidChars() {
return this.replace(/[\uE000-\uF8FF]/g, '');
}
source d'informationauteur manraj82
Vous devez vous connecter pour publier un commentaire.
La plage que vous avez sélectionnée est la Zone d'Utilisation Privée, contenant des caractères non standard. Supports utilisés pour coder les emoji que différents, les valeurs incohérentes à l'intérieur de cette plage.
Plus récemment, l'emoji ont été donnée normalisée "unifié" de codepoints. Beaucoup de ces derniers sont en dehors du Plan Multilingue de Base, dans le bloc U+1F300–U+1F5FF, y compris votre exemple U+1F534 Grand Cercle Rouge.
Vous pourriez détecter ces personnages avec
[\U0001F300-\U0001F5FF]
dans une regex moteur en faveur de la non-BMP personnages, mais du JavaScriptRegExp
n'est pas une bête. Malheureusement, la JS chaîne modèle est basé sur le code UTF-16 unités, de sorte que vous avez à travailler avec l'UTF-16 mères porteuses dans une regexp:Toutefois, notez qu'il y a d'autres personnages dans le Plan Multilingue de Base qui sont utilisés comme des emoji par des téléphones, mais qui sont antérieurs à long emoji. Par exemple U+2665 est la traditionnelle Cœur Costume de personnage ♥, mais il ma rendu un emoji graphique sur certains appareils. C'est à vous de décider si vous traiter cela comme emoji et d'essayer de les supprimer. Voir cette liste pour plus d'exemples.
Pour moi aucune des réponses complètement supprimé toutes les émoticônes j'ai donc dû faire un peu de travail moi-même et c'est ce que j'ai :
Aussi, il faut prendre en compte que si une insertion de la chaîne, plus tard, à la base de données, en remplaçant une chaîne vide susceptible d'exposer la question de la sécurité. au lieu de remplacer le remplacement de caractères U+FFFD, voir : http://www.unicode.org/reports/tr36/#Deletion_of_Noncharacters
Edit:j'ai changé les regex pour incldue quelques nouvelles Émoticônes..
J'ai trouvé de nombreuses suggestions autour de mais la regex qui ont résolu mon problème est le suivant:
Un court exemple
Espère que cela peut vous aider à
Je sais que ce post est un peu vieux, mais je suis tombé sur ce problème très au travail et un collègue est venu avec une idée intéressante. Fondamentalement, plutôt que de se dénuder emoji caractère autoriser uniquement les caractères valides dans. La consultation de ce tableau ASCII:
http://www.asciitable.com/
Une fonction telle que cela ne pouvait garder les caractères juridiques (la plage elle-même dépend de ce que vous êtes après)
Cela devrait conserver tous les chiffres, lettres et caractères spéciaux de l'Alphabet, une situation où vous désirez conserver l'alphabet anglais + nombre + caractères spéciaux. Espérons que cela aide quelqu'un 🙂
Aucune des réponses ici a travaillé pour tous les caractères unicode j'ai testé (en particulier les caractères dans la catégorie divers tels que ⛽ ou ☯️).
Ici est celui qui a fonctionné pour moi, (fortement) inspiré de cette SORTE PHP réponse:
(Mon cas d'utilisation est le tri dans une grille de données où les émoticônes peuvent venir en premier dans une chaîne de caractères, mais les utilisateurs veulent le texte commandé par les mots réels.)