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

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

01.11.2024, 16:53. Показов 1281. Ответов 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
 Аватар для voraa
1296 / 1282 / 190
Регистрация: 21.01.2024
Сообщений: 5,935
02.11.2024, 10:10
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DVBZ Посмотреть сообщение
Скрипт пробовал, заменяются буквы, соответствующие вхождению подстроки, слово, если длиннее , остальные буквы не заменяются.
Не понял. Пример модно, что не заменяется, что заменяется.
Вот тестовый пример. Скрипт немного переделал с учетом того, что в тексте могут быть большие и малые буквы.
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<!DOCTYPE html>
<html>
<head>
    <style>
        div {
            position:relative;
            width: 600px;
            font-size: 1.2rem;
        }
    </style>
</head>
<body>
<div>
<h2>Lorem ipsum odor amet, consectetuer adipiscing elit.</h2> 
<p>
Aliquet proin rutrum cursus habitant aptent fringilla est eleifend nullam. 
Taciti luctus tellus fames turpis sagittis semper pharetra conubia. 
Cursus justo rhoncus potenti; ut pulvinar volutpat non. Rhoncus magna ut id commodo phasellus. 
Nulla fames proin torquent tincidunt rhoncus ornare. 
<i>Dis lorem class tristique rutrum erat elit sem conubia eu.</i>
 Ultrices cras purus malesuada ultricies parturient curabitur neque dignissim nisl.
<p>
</div>
<div>
<p>
Condimentum feugiat ultrices aenean neque lectus augue mauris consequat. 
Per convallis parturient cras; nisl lectus cubilia dapibus. 
Senectus fusce torquent senectus arcu venenatis nascetur facilisi. 
Mauris tristique elementum ante rhoncus cubilia donec nascetur sed. 
Ex nullam fermentum imperdiet tincidunt elit parturient. Neque netus fames eros et adipiscing. 
Est tristique ridiculus tincidunt habitant vehicula mattis. 
Euismod rhoncus pulvinar porttitor morbi duis ultrices mollis eros torquent. 
Tortor dapibus lorem mollis in
</p>
<p>
Lacinia erat finibus; a ullamcorper fames tortor maximus ipsum. 
Massa malesuada dapibus gravida tortor at posuere dictum. 
Pulvinar quam tempus natoque odio nulla gravida massa. 
Varius dui vulputate sociosqu vulputate urna arcu eget. 
Taciti dolor tellus felis leo placerat ullamcorper fringilla fames netus. 
Praesent erat aenean nunc ridiculus semper urna luctus congue.
</p>
<p>
Lorem ipsum odor amet, consectetuer adipiscing elit. 
Aliquet proin rutrum cursus habitant aptent fringilla est eleifend nullam. 
Taciti luctus tellus fames turpis sagittis semper pharetra conubia. 
Cursus justo rhoncus potenti; ut pulvinar volutpat non. Rhoncus magna ut id commodo phasellus. 
Nulla fames proin torquent tincidunt rhoncus ornare. 
Dis lorem class tristique rutrum erat elit sem conubia eu. 
Ultrices cras purus malesuada ultricies parturient curabitur neque dignissim nisl.
</p>
</div>
 
<script>
    const stopWords = ["ipsum", "lorem", "consectetuer"];
    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 rexstr = `(${word[0]})(${word.slice(1,-1)})(${word.at(-1)})`;
            const rexword = new RegExp(rexstr, "ig");
            data = data.replaceAll(rexword, (_, p1, p2, p3)=> p1 + '*'.repeat(p2.length) + p3);
        }
        text.data = data;
    }
    </script>
</body>
</html>
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3857 / 1744 / 432
Регистрация: 14.03.2022
Сообщений: 4,435
02.11.2024, 10:26
Цитата Сообщение от voraa Посмотреть сообщение
Скрипт немного переделал
Я предложил бы еще, перед проходом по нодам, вычислить "что искать" и "на что менять"...
0
0 / 0 / 0
Регистрация: 05.08.2024
Сообщений: 25
02.11.2024, 10:45  [ТС]
voraa, Работает.
Красивое решение.
0
 Аватар для voraa
1296 / 1282 / 190
Регистрация: 21.01.2024
Сообщений: 5,935
02.11.2024, 13:12
Цитата Сообщение от krvsa Посмотреть сообщение
перед проходом по нодам, вычислить "что искать" и "на что менять"
Ну да, тут есть, что оптимизировать.

Такой тогда скрипт можно
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    const stopWords = ["ipsum", "lorem", "consectetuer"];
 
    const walker = document.createTreeWalker(document.body,  NodeFilter.SHOW_TEXT);
 
    const rexwords = stopWords.map (word => {
        const rexstr = `(${word[0]})(${word.slice(1,-1)})(${word.at(-1)})`;
        return new RegExp(rexstr, "ig");
    });
 
    const funrepl = (_, p1, p2, p3)=> p1 + '*'.repeat(p2.length) + p3;
    
    let text;
    while (text = walker.nextNode()) {
        let data = text.data;
        for (const rexword of rexwords) {
             data = data.replaceAll(rexword, funrepl);
        }
        text.data = data;
    }
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3857 / 1744 / 432
Регистрация: 14.03.2022
Сообщений: 4,435
02.11.2024, 14:06
voraa, можно еще саму регулярку "собрать" по принципу слово|слово|...|слово и жахнуть заменой один раз.
0
 Аватар для voraa
1296 / 1282 / 190
Регистрация: 21.01.2024
Сообщений: 5,935
02.11.2024, 16:42
Цитата Сообщение от krvsa Посмотреть сообщение
по принципу слово|слово|...|слово и жахнуть заменой один раз.
Не соображу как? Покажи.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3857 / 1744 / 432
Регистрация: 14.03.2022
Сообщений: 4,435
02.11.2024, 22:03
Цитата Сообщение от voraa Посмотреть сообщение
Покажи
Например вот так...

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
let t = `Condimentum feugiat ultrices aenean neque lectus augue mauris consequat. 
Per convallis parturient cras; nisl lectus cubilia dapibus. 
Senectus fusce torquent senectus arcu venenatis nascetur facilisi. 
Mauris tristique elementum ante rhoncus cubilia donec nascetur sed. 
Ex nullam fermentum imperdiet tincidunt elit parturient. Neque netus fames eros et adipiscing. 
Est tristique ridiculus tincidunt habitant vehicula mattis. 
Euismod rhoncus pulvinar porttitor morbi duis ultrices mollis eros torquent. 
Tortor dapibus lorem mollis in`
const stopWords = ["lectus", "lorem", "Condimentum"]
 
const r = new RegExp(stopWords.join('|'), "ig")
t = t.replace(r, v => v[0] + '*'.repeat(v.length - 2) + v.at(-1))
console.log(t)
1
 Аватар для voraa
1296 / 1282 / 190
Регистрация: 21.01.2024
Сообщений: 5,935
02.11.2024, 22:42
Цитата Сообщение от krvsa Посмотреть сообщение
Например вот так...
Не, это не то.
Слова ведь в тексте могут быть набраны по разному. Например первая буква маленькая, или первая буква большая, или все буквы большие. Мне кажется, что lorem должно заменяться на l***m, а Lorem на L***m, а LOREM на L***M.
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
03.11.2024, 02:07
Цитата Сообщение от voraa Посмотреть сообщение
Мне кажется, что lorem должно заменяться на l***m, а Lorem на L***m, а LOREM на L***M.
Так так и работает.

JavaScript
1
"LOREM, lorem, LoRem".replace(r, v => v[0] + '*'.repeat(v.length - 2) + v.at(-1)); // L***M, l***m, L***m
0
 Аватар для voraa
1296 / 1282 / 190
Регистрация: 21.01.2024
Сообщений: 5,935
03.11.2024, 09:08
Цитата Сообщение от Eva Rosalene Посмотреть сообщение
Так так и работает.
А, даю. Верно.
0
0 / 0 / 0
Регистрация: 05.08.2024
Сообщений: 25
04.11.2024, 14:54  [ТС]
Не замещает.
Можнo вариант в HTML коде?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.11.2024, 14:54

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли Введение: Экологический рынок как игра с нулевой суммой Традиционная экология долгое время. . .
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ Введение: Синдром «цифрового учебника» Современные большие языковые модели (LLM) обладают колоссальным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru