Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Javascript + Программист

С этим тегом используют

Программирование IT HTML IT юмор Frontend CSS Юмор Картинка с текстом Работа Разработка Все
204 поста сначала свежее
3
user10424664
user10424664
13 дней назад

Как переносить «висячие» слова на новую строку с помощью JavaScript⁠⁠

Как переносить «висячие» слова на новую строку с помощью JavaScript Разработка, Программирование, Javascript, Типографика, Uxui, Ui, Ux, Frontend, Верстка, IT, Программист, Telegram (ссылка), Длиннопост

изображение сгенерировано в ChatGPT

В типографике существует понятие “висячих слов” — это короткие слова (предлоги, союзы, местоимения), которые остаются в конце строки при переносе текста. Такие переносы нарушают удобочитаемость и эстетику текста. В русской типографике принято избегать переносов после коротких слов длиной 1-2 символа.

Решение проблемы с помощью JavaScript

Для автоматического предотвращения переносов после коротких слов можно использовать JavaScript, который заменяет обычные пробелы на неразрывные пробелы ( ) после определённых слов.

// Перенос висячих слов

document.addEventListener('DOMContentLoaded', function () {

// 1. Находим все текстовые элементы, которые нужно обработать

const textElements = document.querySelectorAll('p, span, h1, h2, h3, h4, h5, h6, li, dt, dd');

// 2. Список предлогов и союзов, которые нельзя переносить

const prepositions = ['в', 'без', 'до', 'из', 'к', 'на', 'по', 'о', 'от', 'перед', 'при', 'через', 'для', 'с', 'у', 'и', 'а', 'но', 'да', 'или', 'либо', 'что', 'чтобы', 'как', 'когда', 'если', 'вы'];

// 3. Функция для обработки каждого элемента

textElements.forEach(element => {

// Получаем все текстовые узлы внутри элемента

const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT);

const textNodes = [];

while (walker.nextNode()) {

textNodes.push(walker.currentNode);

}

// Обрабатываем каждый текстовый узел

textNodes.forEach(textNode => {

let text = textNode.nodeValue;

// Заменяем пробелы после коротких слов на неразрывные пробелы

text = text.replace(/(^|\s)([а-яё]{1,2})\s/gi, (match, prefix, word) => {

// Проверяем, есть ли слово в списке предлогов

if (prepositions.includes(word.toLowerCase())) {

return prefix + word + '\u00A0'; // \u00A0 - это неразрывный пробел

}

return match;

});

// Обновляем содержимое текстового узла

textNode.nodeValue = text;

});

});

});


Разбор кода по частям


1. Инициализация скрипта

document.addEventListener('DOMContentLoaded', function () {

Код выполняется после полной загрузки DOM-дерева страницы. Это гарантирует, что все элементы будут доступны для обработки.


2. Поиск текстовых элементов

const textElements = document.querySelectorAll('p, span, h1, h2, h3, h4, h5, h6, li, dt, dd');

Скрипт находит все основные текстовые элементы на странице: параграфы, заголовки, элементы списков и другие. Вы можете расширить этот список, добавив другие селекторы.


3. Список коротких слов

const prepositions = ['в', 'без', 'до', 'из', 'к', 'на', 'по', 'о', 'от', 'перед', 'при', 'через', 'для', 'с', 'у', 'и', 'а', 'но', 'да', 'или', 'либо', 'что', 'чтобы', 'как', 'когда', 'если', 'вы'];

Массив содержит наиболее распространённые предлоги, союзы и другие служебные слова русского языка, после которых нежелательны переносы.


4. Обход текстовых узлов

const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT);

TreeWalker позволяет пройти по всем текстовым узлам внутри элемента, включая вложенные теги. Это важно, так как текст может содержать форматирование (, и т.д.).


5. Регулярное выражение для замены

text = text.replace(/(^|\s)([а-яё]{1,2})\s/gi, (match, prefix, word) => {

Регулярное выражение ищет:
· (^|\s) — начало строки или пробел (группа 1);
· ([а-яё]{1,2}) — слово из 1-2 русских букв (группа 2);
· \s — пробел после слова;
· Флаги gi означают глобальный поиск без учёта регистра.


6. Условная замена

if (prepositions.includes(word.toLowerCase())) {

return prefix + word + '\u00A0'; // \u00A0 - это неразрывный пробел

}

Если найденное короткое слово есть в списке предлогов, обычный пробел заменяется на неразрывный пробел (\u00A0). Это предотвращает разрыв строки между предлогом и следующим словом.


Результат работы

После выполнения скрипта текст “Я иду в магазин” не будет разорван на строки как “Я иду в” и “магазин”. Предлог “в” всегда останется на одной строке со следующим словом благодаря неразрывному пробелу.

Настройка скрипта

Вы можете легко адаптировать скрипт под свои нужды:
· Добавить новые селекторы в querySelectorAll() для обработки других элементов;
· Расширить список слов в массиве prepositions;
· Изменить длину слов в регулярном выражении с {1,2} на другое значение;
· Добавить обработку других языков, изменив диапазон символов в регулярном выражении.

Этот простой скрипт значительно улучшает типографику русскоязычных веб-страниц, делая текст более читаемым и профессионально оформленным.

P.S.: это JS решение иногда не во всех случаях срабатывает + бывают сложности с адаптивностью: на смартфонах может переносить совсем не так, как хотелось бы, текст может «уехать» за пределы контейнера, нужно будет «фиксить» эти моменты в CSS.


Разработчики, а как вы решаете вопрос переноса «висячих» слов?

Подписывайся на мой телеграм-канал, чтобы узнать ещё больше полезных фишек верстки и веб-дизайна.

Показать полностью 1
Разработка Программирование Javascript Типографика Uxui Ui Ux Frontend Верстка IT Программист Telegram (ссылка) Длиннопост
13
18
zinger111
14 дней назад

Ответ l.smirnov в «Пояснительная бригада: получаем банан»⁠⁠2

Поздравляю, вы написали хуевый код на Джаве )
Никогда такого не было пиздеж, каждый первый спициалист с скиллбокса не даст соврать и вот опять!
Ну все, Джава мертва, старый унылый кусок говна, пора выкидывать, ведь тупой рандом написал на ней говно...


Но давайте, раз уж мы тут ниибать специалисты, подумаем еще 2 минуточки, над этим ниибически ахуительным тезисом "ахахха язык_название_1 полнае гавно".
Попробуем так сказать в анализ, логику, экстраполяцию даже, не побоюсь этого сложного слова.

Можно ли написать говно на ЛЮБОМ языке?
Отвечает эксперт(я): ага, ващще изи. Ну тоесть гдето сложновато, так как некоторые языки и их инструментарий будут упорно препятствовать, но бля - была бы цель!

Хммммм, а можно ли написать красиво на ЛЮБОМ языке?
Опять отвечает иксперт(я): ну, это конечто блять уметь надо, но вообще - да!
Все языки существуют для решения определённых проблем.
Некоторые узкоспециализированны, и красивые решения там требуют таки навыков, понимания области применения, и опыта.
Но - сделать красиво, и местами элегантно - можно на любом языке. Даже (прости госпади) на Руби.

Я уже устал расписывать что тот же JavaScript (над которым ржут тупорылые неумехи более десятка лет, и который конечно нонче более ускоспециализирован чем его, хммм, скажем для простоты терминов "старший брат" TypeScript) можно и "типизировать", и писать надежно, модульно, и даже красиво. БЫЛО БЫ УМЕНИЕ, ДА ЖЕЛАНИЕ. Да и php, второй по цитируемости в шуточкаж долбаебами язык - уже давно умеет и в типизацию, и вообще во все на свете. И позволяет создавать реально красивый код.
Но - поток идиотиков, сравнивающих вот эти пальцы (рдни языки) с жопами (другие языки), не разбирающихся ни в отм ни в другом - он блять неисчерпаем...

А по поводу конкретного примера из поста, на который я отвечаю - мне уже даже лень расписывать НАСКОЛЬКО чувак нихуя не понял ни в Джаве, ни в конкретно этой, простой в принципе иерархии классов, ни блять даже в самом ООП...

К чему я все это (ДА НЕ ПЕЧЕТ У МЕНЯ!11!!)?

Господа "шутники".
Имейте ввиду, что вы создаете негативный окрас языкам, в которых ничего не смыслите. Люди "снаружи" индустрии, да и просто те кто не очень разбирается - они же ж по этим шуточкам составят мнение, и понесут его в массы...

Вам не стыдно?

Показать полностью
[моё] Программирование IT Программист IT юмор Разработка Javascript Java PHP Мат Ответ на пост Текст
8
1077
l.smirnov
15 дней назад

Ответ на пост «Пояснительная бригада: получаем банан»⁠⁠2

PHP и Java

PHP, сравни жопу с пальцем!

PHP: жопа это не палец.

Java, сравни жопу с пальцем!

Java: я не знаю, что такое жопа, и что такое палец. Подключите библиотеки классов жопа и палец.

Ок, подключаю!

Java: не могу подключить классы жопа и палец, они наследуют свойства и методы класса "тело", а этот класс не подключен.

Ок, подключаю!

Java: не могу создать классы жопа и палец, подключенный класс "тело" имеет версию эволюции 13.5.3, и не поддерживает классы жопа и палец.

Гуглю, пытаясь понять, чем различаются верси тела 20.3.8 и 20.3.9, и в чем различие женского и мужского тела. Ок, подключаю новую версию класса тело!

Java: чтобы сравнить, создайте объект тело с объектами жопа и палец. Не хватает классов "голова, руки, ноги"!

Гуглю, подключаю голову, руки, ноги.

Java: жопа это палец!

Почему!???!

Java: жопа = объект, палец = объект, соответственно жопа = палец!

Программирование IT Программист IT юмор Разработка Javascript Java PHP Ответ на пост Текст
91
Партнёрский материал Реклама
specials
specials

Считаете себя киноманом 80 LVL?⁠⁠

Залетайте проверить память и сообразительность → Будет интересно

Киногерои Тест Текст
2562
thecodemedia
thecodemedia
15 дней назад

Пояснительная бригада: получаем банан⁠⁠2

Пояснительная бригада: получаем банан Программирование, IT, Программист, IT юмор, Разработка, Javascript

Комментирует редакция «Кода»:

У нас выражение на JavaScript. Начало переводится так: «Возьми букву b, соедини с буквой a, дальше…»

А дальше интересно. Смотрите на два плюсика в середине. Первый плюсик означает «сложи» или «соедини» — то же самое, что самый первый плюс в этом выражении.

А второй плюс — это унарный оператор, он преобразовывает следующую за ним строку в число. Следующая за ним строка — буква «a», это не число. Унарный оператор возвращает значение NaN — Not a Number, то есть «ожидал, что будет число, а это не число».

Получается baNaN.

Потом к этому добавляется ещё одна «a» по тому же принципу, что в начале. Получается baNaNa.

Дальше эту строку преобразовывают в нижний регистр с помощью .toLowerCase () и получается banana.

Подвох был в унарном операторе. То, что это именно он, со стороны не очевидно, потому что для нас это просто плюс. Но JavaScript смотрит на место этого плюса и понимает, что имелось в виду преобразование в число.

Показать полностью
Программирование IT Программист IT юмор Разработка Javascript
252
12
HellAnonim
HellAnonim
23 дня назад

Ответ на пост «Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам»⁠⁠2

Очень правильно написано. В IT нельзя идти за деньгами. В IT надо идти «по зову сердца». Потому что развиваться, учить что-то новое можно только в том случае, если тебе интересно этим заниматься. А учиться тебе придётся постоянно. Более 25 лет в IT, каждый год появляется что-то новое. Или "мода" на технологии меняется.

А если тебе интересно, тот всё, что нужно для работы можно реально найти в Интернете абсолютно бесплатно (даже в очень редких предметных областях).

И, как мне показалось, в последнее время в крупных компаниях появилась большая мода на стажёров, которые хоть и получают мало, зато имеют хорошие перспективы (если смогут себя показать, конечно).

Главное в IT состоит в том, что для того, чтобы 'начинать вкатываться", тебе не нужно сильных вложений. Только компьютер, Интернет и желание попробовать что-то новое.

Опыт Негатив IT Карьера Python Javascript Java Программирование Программист Длиннопост Ответ на пост Текст
22
201
Аноним
Аноним
23 дня назад

Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам⁠⁠2

В 2018-м я вошёл в IT — тогда всё было радужно: вакансий полно, конкуренция терпимая, а компании готовы брать джунов и растить их. Сегодня я работаю в крупной компании, зарабатываю нормально, в работе не нуждаюсь. Но недавно мой хороший знакомый решил ворваться в IT, и его слова: "Это жесть".

Если кто-то ещё думает, что сейчас закончит курсы IT и будет попивать латте в комфортном кресле за 999999 руб/сек, хочу вас огорчить, реальность такова:

Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам Опыт, Негатив, IT, Карьера, Python, Javascript, Java, Программирование, Программист, Длиннопост

Я сам полез смотреть, что творится на рынке труда разработчиков, и реальность шокирует

Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам Опыт, Негатив, IT, Карьера, Python, Javascript, Java, Программирование, Программист, Длиннопост
Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам Опыт, Негатив, IT, Карьера, Python, Javascript, Java, Программирование, Программист, Длиннопост
Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам Опыт, Негатив, IT, Карьера, Python, Javascript, Java, Программирование, Программист, Длиннопост
Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам Опыт, Негатив, IT, Карьера, Python, Javascript, Java, Программирование, Программист, Длиннопост
Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам Опыт, Негатив, IT, Карьера, Python, Javascript, Java, Программирование, Программист, Длиннопост
Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам Опыт, Негатив, IT, Карьера, Python, Javascript, Java, Программирование, Программист, Длиннопост
Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам Опыт, Негатив, IT, Карьера, Python, Javascript, Java, Программирование, Программист, Длиннопост

На одну вакансию — 1500 откликов. Полторы тысячи человек бьются за место джуна с зарплатой, которая едва покрывает аренду в Москве. А если вам за 30? Можете сразу забыть. Компании хотят молодых, готовых пахать за идею и быстро учиться. В 30+ вы для них "слишком старый" — им проще взять 20-летнего, который будет жить на энергетиках и кодить ночами. Рынок перенасыщен, и возраст только усложняет дело.

В 2020-х все кинулись в программирование, поверив роликам про шестизначные зарплаты и удалёнку на Бали. Курсы плодились как тараканы: "Код за 30 дней", "Сеньор за полгода", "Python для чайников". Лендинги с "историями успеха", улыбчивые менторы и обещания работы мечты — всё ради ваших 100-200 тысяч за курс. Но правда в том, что эти курсы продают мечту, а не профессию.

ИИ добивает джунов. Нейросети вроде Copilot или Grok пишут код, генерируют интерфейсы и автоматизируют рутину быстрее, чем стажёр успеет открыть VS Code. Зачем нанимать новичка, если ИИ справляется дешевле? Конкуренция — дикая. Новички готовы работать за еду, лишь бы зацепиться, но даже это не помогает. Компании хотят мидлов и сеньоров, которые сразу приносят пользу.

Хуже всего — новые схемы обмана. Курсы теперь учат "крутить опыт": пишите в резюме, что вы уже работали разработчиком, лепите фейковые проекты на GitHub, врите на собеседованиях. Есть "стажировки", которые обещают трудоустройство через 6 месяцев: вы платите за курс, пишете командное приложение (обычно примитивное), проходите тренинги по HR-собесам и техинтервью. Звучит круто? Нет. Это просто ещё один способ заработать на тех, кто уже отдал деньги за первые курсы и мечтает о работе. Некоторые даже обещают сделать вас мидлом за полгода. Серьёзно? Такого "мидла" если не на собесе раскусят, то в первую неделю и уволят за профнепригодность.

Куча таких роликов и на ютубе:

Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам Опыт, Негатив, IT, Карьера, Python, Javascript, Java, Программирование, Программист, Длиннопост
Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам Опыт, Негатив, IT, Карьера, Python, Javascript, Java, Программирование, Программист, Длиннопост
Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам Опыт, Негатив, IT, Карьера, Python, Javascript, Java, Программирование, Программист, Длиннопост
Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам Опыт, Негатив, IT, Карьера, Python, Javascript, Java, Программирование, Программист, Длиннопост

Я подрабатываю в одной онлайн-школе (не из тех, что разводят на "мидлов"). Они обещают сделать вас джуном, но я знаю правду: максимум — стажёр. Проверяющие работы получают копейки — 500 рублей за принятую работу, и не важно, сколько итераций доработки нужно (5 или 10). Зачем тратить время на глубокий фидбэк или учить лучшим практикам, если больше не заплатят? Говнокод студента работает — и ладно, ставим галочку и закрываем тикет. Ещё хуже — в некоторых школах ваши работы проверяют выпускники тех же курсов. Представляете? Вчерашний студент, который сам едва освоил циклы, учит вас кодить. Это просто огонь...

Списки курсов? Они недешёвые — от 50 до 300 тысяч. И всё ради знаний, которые не тянут даже на джуна, пока продавцы набивают карманы, а вы остаётесь с красивыми сертификатами и нулевым опытом.Курсы дают базу, но она очень слабая. Списки курсов? Они недешёвые — от 50 до 300 тысяч. И всё ради знаний, которые не тянут даже на джуна, а вы остаётесь с красивыми сертификатами и нулевым опытом.

Итог: IT — уже не золотая жила. Курсы наживаются на вашей надежде, ИИ отбирает работу у новичков, а конкуренция превращает рынок в мясорубку. Если вы всё же хотите войти в IT, забудьте про иллюзии. Это не спринт, а марафон, где выживают только те, кто готов пахать без гарантий. Мой совет: трижды подумайте, прежде чем платить за очередной курс. А лучше — спросите тех, кто уже в деле, как оно на самом деле.

Вам уже не стать разработчиком. Хайп IT мёртв, и рынок трещит по швам Опыт, Негатив, IT, Карьера, Python, Javascript, Java, Программирование, Программист, Длиннопост
Показать полностью 13
Опыт Негатив IT Карьера Python Javascript Java Программирование Программист Длиннопост
233
2
Вопрос из ленты «Эксперты»
Invaleedisss
Invaleedisss
26 дней назад

Скопировать много слов сразу в буфер и вставить разом все⁠⁠

Привет, может быть тут повезёт

Ищу софт для копирования отдельных слов со страницы в буфер обмена и одновременную вставку всего, что скопировал.

На Windows есть журнал буфера обмена, туда можно копировать любое выделенное слово и они там сохранятся хоть 100 слов

но, вставить их все одновременно не знаю как, только по одному слову вставлять, а это не практично.

Может кто-то знает как реализовать или кто-то пользуется чем-то похожим, чтобы можно было выделять слова по всей странице или нескольких страницах одновременно, держать их в одном месте (условно буфере), потом оттуда их можно достать все сразу и вставить (например в документ)

[моё] Вопрос Программирование Программист Программа IT Javascript Java Python Windows Linux Microsoft Google Спроси Пикабу Текст
4
55
tproger.official
tproger.official
1 месяц назад
Типичный программист

Бэкендеры и JavaScript⁠⁠

Бэкендеры и JavaScript IT юмор, Программирование, IT, Программист, Backend, Javascript, Мемы, Картинка с текстом
Бэкендеры и JavaScript IT юмор, Программирование, IT, Программист, Backend, Javascript, Мемы, Картинка с текстом
Показать полностью 1
IT юмор Программирование IT Программист Backend Javascript Мемы Картинка с текстом
11
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии