Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Антиспам (запрет англоязычных сообщений) (https://javascript.ru/forum/misc/84871-antispam-zapret-angloyazychnykh-soobshhenijj.html)

Ubivectel 22.01.2023 08:01

Антиспам (запрет англоязычных сообщений)
 
Здравствуйте товарищи кодеры!

Жутко надоел спам в чате. Единственное, что пока пришло в голову, запретить сообщения которые содержат больше скажем 30 английских символов. Обычно хотя бы логику того, что нужно сделать представляю, но сейчас в растерянности.
Итак, вот как выглядит сообщение:

<div id="KIDE_id_1000391" class="KIDE_msg_top">
  <span class="KIDE_msg_hour"> 9:34 -</span>
  <span title="22-1 9:34:16" oncontextmenu="event.preventDefault();kide.mensaje('Павлин_4861',0,1000391,'','22-1 9:34:16','e34629ab8eb3df87eb0230a6a380c2d2',3,'http://www.gravatar.com/avatar/9c083d94d6703024d615406e8b17a01c?s=50&amp;d=wavatar')" class="KIDE_guest">
                <span style="cursor: pointer" title="22-1 9:34:16" onclick="kide.insertSmile('Павлин_4861, ')"
                        class="KIDE_guest">Ник</span>: <span class="KIDE_dc_guest KIDE_msg">Текст сообщения</span>
  <i class="fa fa-reply qutes" title="Цитировать" aria-hidden="true"></i>
  <span class="hig K_copy"><i class="fa fa-clipboard" title="Копировать" aria-hidden="true"></i></span>
  </span>
</div>


:help:

Ubivectel 23.01.2023 09:12

Хотя в целом логику наверное понимаю. Получить все span "KIDE_msg" проверить не содержат ли английские символы и если их больше n удалить содержащий его "IDE_msg_top" но как это будет выглядеть не представляю (

Попробовать и посмотреть можно тут: https://noviy-kovcheg.ru/chat

рони 23.01.2023 09:47

Ubivectel,
может чем-то поможет ...
document.addEventListener("DOMContentLoaded", function() {
            let textarea = document.querySelector(".KIDE_dc_guest");
            let reg = /[\w\s]{20,}/g;
            textarea.addEventListener("input", function() {
                reg.lastIndex = 0;
                if (reg.test(textarea.value)) textarea.value = 'чапаев и пустота'
            })
        })

voraa 23.01.2023 10:18

Цитата:

Сообщение от Ubivectel
проверить не содержат ли английские символы и если их больше n удалить содержащий его "IDE_msg_top"

n латинских букв подряд или всего?

Ubivectel 23.01.2023 10:31

"n" имел ввиду именно количество латинских символов. То есть если спан class="KIDE_dc_guest KIDE_msg" содержит их например больше тридцати, то удалять содержащий его див class="KIDE_msg_top" В настоящий момент добавил скрипт предложенный рони, и хотя даже смутно пока не могу понять, что он должен делать, но ботов пока не видать ) Правда они набегами, тут только ждать

рони 23.01.2023 11:06

Цитата:

Сообщение от Ubivectel
что он должен делать, но ботов пока не видать )

введи текст на en побольше и увидишь

Ubivectel 23.01.2023 11:11

Цитата:

Сообщение от рони (Сообщение 550208)
введи текст на en побольше и увидишь

похоже что-то делаю не так:

https://skrinshoter.ru/p/230123/Dtvq...2011:09:43.png

Ubivectel 23.01.2023 11:34

Цитата:

Сообщение от voraa (Сообщение 550205)
n латинских букв подряд или всего?

Не подряд конечно, всего в сообщении

рони 23.01.2023 11:44

Цитата:

Сообщение от Ubivectel
похоже что-то делаю не так:

вроде верно

Ubivectel 23.01.2023 11:48

Цитата:

Сообщение от рони (Сообщение 550211)
вроде верно

Добавил код в конец файла: https://noviy-kovcheg.ru/components/.../kidecustom.js

Однако боты проходят, а textarea дает вписывать en любой длинны :(


Часовой пояс GMT +3, время: 23:38.