#javascript #node.js #discord.js
#javascript #node.js #discord.js
Вопрос:
на самом деле этот вопрос задавался в прошлом году, и ответы были очень полезными, но есть проблема, и я не мог ее понять, и я не могу прокомментировать эти ответы, поэтому я решил добавить вопросы
client.on('message', message => {
const text = message.content.replace(/:[^:s] :|<:[^:s] :[0-9] >|<a:[^:s] :[0-9] >/g, '').replace(/s /g, '');
if (text amp;amp; message.channel.id === '772980333049020436') {
message.delete()
.catch(console.error);
}
})
Я написал это, и на самом деле он хорошо работает для пользовательских и анимированных смайликов и удаляет текстовые сообщения, но смайлики discord по умолчанию тоже удалены, например: smile: is deleting . Как я могу это исправить
Ответ №1:
Ваше регулярное выражение не соответствует смайликам в Юникоде. Простой способ распознать их — использовать emoji-regex
пакет npm.
const EmojiRegex = require('emoji-regex/RGI_Emoji.js');
const text = message.content
.replace(/:[^:s] :|<:[^:s] :[0-9] >|<a:[^:s] :[0-9] >/g, '')
.replace(new EmojiRegex(), '');
.replace(/s /g, '');