Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 05.08.2024
Сообщений: 25

Скрипт цензурирования контента

01.11.2024, 16:53. Показов 1185. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел на просторах скрипт,
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
var massiv = ["яблочный пирог","соус_острый_1","яблоки_красные","соус_острый_8"];
 
function findPartial(a, s)
{
  var zz = []
  for( var i = 0; i < a.length; ++i )
    if( a[i].indexOf(s) >= 0 )
      zz.push(i)      
  return zz
}
 
alert( findPartial( massiv, "соус_острый" ) )
Хотелось бы адаптировать таким образом, чтобы слово контенте страницы html, при вхождении в элемент массива заменялось по принципу первая и последняя буква остается, остальное заменяется "звездочками", "*".
Знаний не хватает, учусь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.11.2024, 16:53
Ответы с готовыми решениями:

Не срабатывает скрипт тянущегося контента в Firefox
Доброго дня вам форумчане, пытаюсь разобраться со скриптом который на моём сайте растягивает виджеты по всей высоте экрана. Сам...

Рабочий скрипт динамического контента. Не работает в браузере
Доброго времени суток друзья. Сразу перейду к проблеме. Долго искал скрипт который будет выполнять роль динамического контента. То есть...

Не срабатывает скрипт после динамической генерации контента.
Всем добрый вечер , пишу сайт с использованием jQuery и ajax , это для меня новое постепенно изучаю и столкнулся с такой проблемой...

30
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3803 / 1634 / 428
Регистрация: 14.03.2022
Сообщений: 4,075
01.11.2024, 17:09
Цитата Сообщение от DVBZ Посмотреть сообщение
чтобы слово контенте страницы html, при вхождении в элемент массива
Переведи (с)

Добавлено через 5 минут
DVBZ, так?

JavaScript
1
2
3
4
5
6
const massiv = ["яблочный пирог","соус_острый_1","яблоки_красные","соус_острый_8"]
const test = (a, s) => a.map(v => v.includes(s)
    ? v[0] + '*'.repeat(v.length - 2) + v.slice(-1)
    : v
)
console.log(test(massiv, "соус_острый"))
0
Надуваю лягушек
Эксперт PHP
 Аватар для Царь Бабай
289 / 219 / 93
Регистрация: 01.05.2014
Сообщений: 742
01.11.2024, 17:10
Типа такого?


JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
function findPartial(a, s, numStars) {
  var zz = []
  for( var i = 0; i < a.length; ++i ) {
    if( a[i].indexOf(s) >= 0 ) {
      var firstLetter = a[i][0];
      var lastLetter = a[i][a[i].length - 1];
      var stars = "*".repeat(numStars);
      var replacedString = firstLetter + stars + lastLetter;
      zz.push(replacedString);
    }
  }
  return zz
}
JavaScript
1
2
3
4
5
var massiv = ["яблочный пирог","соус_острый_1","яблоки_красные","соус_острый_8"];
 
var result = findPartial(massiv, "соус_острый", 10);
 
console.log(result); // ["с**********й_1", "с**********й_8"]
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3803 / 1634 / 428
Регистрация: 14.03.2022
Сообщений: 4,075
01.11.2024, 17:25
Цитата Сообщение от Царь Бабай Посмотреть сообщение
console.log(result); // ["с**********й_1", "с**********й_8"]
Если так - тогда я вот так...

JavaScript
1
2
3
4
5
6
7
8
9
10
const massiv = ["яблочный пирог","соус_острый_1","яблоки_красные","соус_острый_8"]
const test = (a, s) => a.reduce((o, v) => (
    v.includes(s) && o.a.push(v.replace(o.r, o.s)), 
    o
), {
    a: [],
    s: s[0] + '*'.repeat(s.length - 2) + s.slice(-1),
    r: new RegExp(s)
}).a
console.log(test(massiv, "соус_острый"))
0
0 / 0 / 0
Регистрация: 05.08.2024
Сообщений: 25
01.11.2024, 17:27  [ТС]
что-то вроде цензора хочу реализовать.
Забить в массив варианты вхождения и проверять слова контента страницы при загрузке, естественно, кроме знаков препинания, приравнивая верхний регистр к нижнему.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3803 / 1634 / 428
Регистрация: 14.03.2022
Сообщений: 4,075
01.11.2024, 17:32
Цитата Сообщение от DVBZ Посмотреть сообщение
что-то вроде цензора хочу реализовать.
Тогда твой пример скрипта тут не при делах...

Если я правильно понял - у тебя есть некий текст и набор "запрещенных фраз". В тексте нужно запрещенные фразы "зазвездить".

Так?
0
0 / 0 / 0
Регистрация: 05.08.2024
Сообщений: 25
01.11.2024, 17:35  [ТС]
krvsa, Так и есть, по принципу оставляем первую и последнюю букву слова, остальные звездим, если ключевое слово из некого массива, списка, попадает в состав этого слова.
0
 Аватар для voraa
1230 / 1122 / 174
Регистрация: 21.01.2024
Сообщений: 5,111
01.11.2024, 17:46
DVBZ, Этот текст в какой то строке или уже на странице?
0
0 / 0 / 0
Регистрация: 05.08.2024
Сообщений: 25
01.11.2024, 18:12  [ТС]
voraa, на странице.
Планировал перебирать по словам и при обнаружении вхождения строки из массива "айайай" заменять все символы, кроме первого и последнего звездочками.
Точнее, подстроки.
0
 Аватар для voraa
1230 / 1122 / 174
Регистрация: 21.01.2024
Сообщений: 5,111
01.11.2024, 18:23
DVBZ,
Вы не умеете ТЗ (свои хотелки) давать.
Итак. Есть массив каких то слов.
Есть уже считанная страница.
Надо пройтись по этой странице, просмотреть все текстовые узлы и в них найти и заменить слова, которые заданы в массиве.
Так?
0
0 / 0 / 0
Регистрация: 05.08.2024
Сообщений: 25
01.11.2024, 18:34  [ТС]
voraa, Всё верно, прошу прощения за косноязычие.
Поставил себе задачу: есть массив слов, если слово из этого массива входит подстрокой в состав слова загруженной страницы, то это слово на странице кроме первой и последней буквы затирается звездами.
0
 Аватар для voraa
1230 / 1122 / 174
Регистрация: 21.01.2024
Сообщений: 5,111
01.11.2024, 19:26
Тогда что то типа такого

JavaScript
1
2
3
4
5
6
7
8
9
10
11
const stopWords = ["aaa", "bbb"];
const walker = document.createTreeWalker(document.body,  NodeFilter.SHOW_TEXT);
let text;
while (text = walker.nextNode()) {
    const data = text.data;
    for (word of stopWords) {
        const newword = word[0] + '*'.repeat(word.length-2) + word.at(-1);
        data = data.replaceAll(word, newword);
    }
    text.data = data;
}
Добавлено через 39 минут
Ошибка.
Строка 5
JavaScript
1
let data = text.data;
Строка 6
JavaScript
1
for (const word of stopWords) {
0
0 / 0 / 0
Регистрация: 05.08.2024
Сообщений: 25
01.11.2024, 19:51  [ТС]
Как этот код вписать в html страницу , потестить
0
 Аватар для voraa
1230 / 1122 / 174
Регистрация: 21.01.2024
Сообщений: 5,111
01.11.2024, 20:23
Ну просто перед </body> можно вставить
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
<script>
const stopWords = ["aaa", "bbb"];
const walker = document.createTreeWalker(document.body,  NodeFilter.SHOW_TEXT);
let text;
while (text = walker.nextNode()) {
    let data = text.data;
    for (const word of stopWords) {
        const newword = word[0] + '*'.repeat(word.length-2) + word.at(-1);
        data = data.replaceAll(word, newword);
    }
    text.data = data;
}
</script>
Вы на js вобще никогда не писали ничего?
1
0 / 0 / 0
Регистрация: 05.08.2024
Сообщений: 25
01.11.2024, 23:10  [ТС]
Я больше по железу.
Познаю новое, вроде всё понятно, но иногда ступор.
0
0 / 0 / 0
Регистрация: 05.08.2024
Сообщений: 25
02.11.2024, 08:05  [ТС]
Нужно получить результат:
На входе "aaabbb" -> "a****b"
На входе "sdfsdfaaasf" -> "s*******s"

По такому принципу. Если в слово есть вхождение подстроки из массива, то все буквы слова, кроме первой и последней меняются на звезды.
0
Заблокирован
02.11.2024, 08:29
Цитата Сообщение от DVBZ Посмотреть сообщение
Нужно получить результат:
На входе "aaabbb" -> "a****b"
Никто на клиенте не цензурирует. Это надо делать на сервере с помощью php или другого ЯП. Потому что в исходной коде страницы могут оказаться все матерные слова в которые хочешь звёздочек насувать.
0
0 / 0 / 0
Регистрация: 05.08.2024
Сообщений: 25
02.11.2024, 08:33  [ТС]
barabar, Это понятно, но ситуация обязывает цензурировать на клиенте.
И понятно, что идеально не получится, но иных вариантов, кроме как загонять подстроки в массив и искать вхождения по словам не вижу..
0
 Аватар для voraa
1230 / 1122 / 174
Регистрация: 21.01.2024
Сообщений: 5,111
02.11.2024, 09:23
Цитата Сообщение от DVBZ Посмотреть сообщение
И понятно, что идеально не получится, но иных вариантов, кроме как загонять подстроки в массив и искать вхождения по словам не вижу..
Так вы пробовали мой скрипт?
Цитата Сообщение от DVBZ Посмотреть сообщение
На входе "sdfsdfaaasf" -> "s*******s"
А почему не "s*********f"?
0
0 / 0 / 0
Регистрация: 05.08.2024
Сообщений: 25
02.11.2024, 09:34  [ТС]
voraa, всё верно, опечатка у меня

Скрипт пробовал, заменяются буквы, соответствующие вхождению подстроки, слово, если длиннее , остальные буквы не заменяются.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.11.2024, 09:34
Помогаю со студенческими работами здесь

Как заставить jquery-скрипт работать при перезагрузке контента AJAX-ом?
Добрый день! Вопрос следующий. У меня есть скрипт JQuery, который добавляет определенный код после каждого 4-го div таким вот образом:. ...

Скрипт проверки уникальности контента
Кто может подсказать где скачать если такой скрипт есть. Нужно проверять контент на уникальность но проверку делать в базе данных. Это...

После обновления контента <div> через AJAX перестают работать события данного контента
Здравствуйте. Есть проблемка такого характера. На сайте выбирается студент и в поля ввода читаются его данные. Можно также добавить...

Подгрузка контента из подгруженного контента в тот же блок :)
Здравствуйте! Подгружаю в блок контент из которого по нажатию на кнопку должна происходить подгрузка другого контента в этот же блок. ...

Подгрузка контента и экземпляр контента
Объясните, пожалуйста _contentLoaded это переменная отвечающая за подгрузку контента. но 1)Как весь контент можно обозначить одной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru