Tengo un bot de Telegram y quiero eliminar todos los caracteres especiales y solo devuelve números y AZ, pero el problema es que mi patrón de expresiones regulares puede eliminar cualquier emoji excepto números como este: 1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣
Quiero eliminar los números de emoji también
Así que este es mi patrón:
text = '1️⃣Hi =) 1.This regex removes 2️⃣all special 6️⃣characters like this !@$#%^&*()_+=~`/\><.⚠️4️⃣' text.toUpperCase().match(/[az]+|\d+(?:\.\d+)?/gi) .map((m) => (isNaN(m) ? m : +m)) //Current output : // [1,'HI',1,'THIS','REGEX','REMOVES',2,'ALL', 'SPECIAL',6,'CHARACTERS', 'LIKE','THIS'] //What I want : // ['HI',1,'THIS','REGEX','REMOVES','ALL', 'SPECIAL','CHARACTERS', 'LIKE','THIS']¡Además, no sé por qué eliminó el emoji del último número de la cadena! (4️⃣)
Estos números son emojis. Para eliminarlos, también, use lo siguiente:
text = '1️⃣Hi =) 1.This regex removes 2️⃣all special 6️⃣characters like this !@$#%^&*()_+=~`/\><.⚠️4️⃣' console.log( text.toUpperCase().match(/[az]+|(?!\d\uFE0F\u20E3)\d+(?:\.\d+)?/gi) .map((m) => (isNaN(m) ? m : +m)) ) La búsqueda negativa (?!\d\uFE0F\u20E3) fallará en cualquier coincidencia de \d+(?:\.\d+)? cuando el primer dígito es parte de los emojis numéricos.