No olvides que en las ciencias un problema casi siempere suele tener diferentes soluciones, no obstante nosotros te compartiremos lo más óptimo y eficiente.
Solución:
Para mí, ninguna de las respuestas eliminó por completo todos los emojis, así que tuve que trabajar un poco y esto es lo que obtuve:
text.replace(/([u2700-u27BF]|[uE000-uF8FF]|uD83C[uDC00-uDFFF]|uD83D[uDC00-uDFFF]|[u2011-u26FF]|uD83E[uDD10-uDDFF])/g, '');
Además, se debe tener en cuenta que si se inserta el string más tarde a la base de datos, reemplazando con vacío string podría exponer el problema de seguridad. en su lugar, reemplácelo con el carácter de reemplazo U+FFFD, consulte: http://www.unicode.org/reports/tr36/#Deletion_of_Noncharacters
El rango que ha seleccionado es el Área de uso privado, que contiene caracteres no estándar. Los operadores solían codificar emoji como valores diferentes e inconsistentes dentro de este rango.
Más recientemente, a los emoji se les han dado puntos de código ‘unificados’ estandarizados. Muchos de estos están fuera del plano multilingüe básico, en el bloque U+1F300–U+1F5FF, incluido su ejemplo U+1F534 Círculo rojo grande.
Podrías detectar estos caracteres con [U0001F300-U0001F5FF]
en un motor de expresiones regulares que admite caracteres que no son BMP, pero JavaScript RegExp
no es una bestia. Desafortunadamente el JS string el modelo se basa en unidades de código UTF-16, por lo que tendría que trabajar con los sustitutos UTF-16 en una expresión regular:
return this.replace(/([uE000-uF8FF]|uD83C[uDF00-uDFFF]|uD83D[uDC00-uDDFF])/g, '')
Sin embargo, tenga en cuenta que hay otros caracteres en el plano multilingüe básico que se utilizan como emoji en los teléfonos, pero que son anteriores a los emoji. Por ejemplo, U+2665 es el carácter tradicional ♥ de Heart Suit, pero puede mostrarse como un gráfico emoji en algunos dispositivos. Depende de usted tratar esto como un emoji e intentar eliminarlo. Consulte esta lista para ver más ejemplos.
He encontrado muchas sugerencias, pero la expresión regular que ha resuelto mi problema es:
/(?:[u2700-u27bf]|(?:ud83c[udde6-uddff])2|[ud800-udbff][udc00-udfff]|[u0023-u0039]ufe0f?u20e3|u3299|u3297|u303d|u3030|u24c2|ud83c[udd70-udd71]|ud83c[udd7e-udd7f]|ud83cudd8e|ud83c[udd91-udd9a]|ud83c[udde6-uddff]|ud83c[ude01-ude02]|ud83cude1a|ud83cude2f|ud83c[ude32-ude3a]|ud83c[ude50-ude51]|u203c|u2049|[u25aa-u25ab]|u25b6|u25c0|[u25fb-u25fe]|u00a9|u00ae|u2122|u2139|ud83cudc04|[u2600-u26FF]|u2b05|u2b06|u2b07|u2b1b|u2b1c|u2b50|u2b55|u231a|u231b|u2328|u23cf|[u23e9-u23f3]|[u23f8-u23fa]|ud83cudccf|u2934|u2935|[u2190-u21ff])/g
Un breve ejemplo
function removeEmojis (string) u24c2
Espero que te ayude
Nos puedes ayudar nuestro ensayo ejecutando un comentario o dejando una valoración te estamos eternamente agradecidos.