Свежие статьи
40 самых популярных регулярных выражений в JavaScript
Часто бывает нужна какая-нибудь конкретная регулярка — например, проверить почту или номер телефона. Собрали 40 часто встречаемых, чтобы они всегда были под рукой (или, на худой конец, в закладках).
| # | Название | Регулярное выражение |
|---|---|---|
| 1 | Проверка email | /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/ |
| 2 | Проверка URL | /^https?:\/\/[\w\-]+(\.[\w\-]+)+[/#?]?.*$/ |
| 3 | Только цифры | /^\d+$/ |
| 4 | Только буквы | /^[a-zA-Z]+$/ |
| 5 | Телефон РФ | /^(?:\+7|8)[\s-]?\(?\d{3}\)?[\s-]?\d{3}[\s-]?\d{2}[\s-]?\d{2}$/ |
| 6 | HEX-цвет | /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/ |
| 7 | IPv4-адрес | /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/ |
| 8 | Дата ДД.ММ.ГГГГ | /^(0[1-9]|[12]\d|3[01])\.(0[1-9]|1[012])\.(19|20)\d{2}$/ |
| 9 | Время ЧЧ:ММ | /^([01]\d|2[0-3]):([0-5]\d)$/ |
| 10 | Сильный пароль (8+ символов, буквы + цифры) | /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/ |
| 11 | Хотя бы одна заглавная буква | /(?=.*[A-Z])/ |
| 12 | Только латиница и цифры | /^[a-zA-Z0-9]+$/ |
| 13 | YouTube ID из ссылки | /(?:v=|\/embed\/|\.be\/)([^?&"]{11})/ |
| 14 | Удалить HTML-теги | /<[^>]*>/g |
| 15 | Удалить лишние пробелы | /\s+/g |
| 16 | Найти все цифры | /\d+/g |
| 17 | Заменить цифры на * | /\d/g |
| 18 | CamelCase → snake_case | /([A-Z])/g |
| 19 | snake_case → camelCase | /_[a-z]/g |
| 20 | Первая буква заглавная | /^\w/ |
| 21 | Все слова с заглавной | /\b\w/g |
| 22 | Повторяющиеся слова | /\b(\w+)\b\s+\1\b/gi |
| 23 | UUID | /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i |
| 24 | Base64 | /^(data:[^;]+;base64,)?[A-Za-z0-9+/=]+$/ |
| 25 | Число с плавающей точкой | /^-?\d*(\.\d+)?$/ |
| 26 | Сумма в рублях | /^\d{1,3}(?:\s\d{3})*(?:[.,]\d{1,2})?\s?₽?$/ |
| 27 | @упоминания | /@\w+/g |
| 28 | #хэштеги | /#\w+/g |
| 29 | Удалить эмодзи | /[\u{1F600}-\u{1F6FF}|\u{2600}-\u{26FF}|\u{2700}-\u{27BF}]/gu |
| 30 | Только кириллица | /^[а-яА-ЯёЁ]+$/u |
| 31 | Логин (3–20 символов) | /^[a-zA-Z0-9_-]{3,20}$/ |
| 32 | Есть спецсимволы | /[^a-zA-Z0-9\s]/ |
| 33 | Пробелы в начале/конце | /^\s|\s$/ |
| 34 | Все числа в тексте | /-?\d+(\.\d+)?/g |
| 35 | Сжать пробелы | /\s+/g |
| 36 | Пустая строка или пробелы | /^\s*$/ |
| 37 | Простая CSV-строка | /^[^,\r\n]+(,[^,\r\n]+)*$/ |
| 38 | IPv6 (упрощённо) | /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/ |
| 39 | Только пробелы и табы | /^[\s\t]*$/ |
| 40 | Случайный пароль 12 символов (паттерн) | /[A-Za-z0-9]{12}/ |
Сохрани страницу — и 40 самых полезных регулярных выражений всегда под рукой!
- 9 ноября 2025

Полный гайд по объекту Date в JavaScript
Объект Date позволяет создавать, сравнивать и форматировать дату и время. Используется для отображения текущего времени, вычисления интервалов и работы с таймзонами в веб-приложениях.
Доступно в Baseline в статусе «Widely Available» с 2018-01-29
- 8 ноября 2025

@counter-style — создание собственных стилей счётчиков в CSS
@counter-style — это правило CSS, которое позволяет определять свои собственные стили нумерации для списков, счётчиков и других элементов, использующих функцию counter(). Вместо привычных арабских цифр, латинских букв или стандартных маркеров вы можете задать любые символы, изображения или даже сложные последовательности.
Поддержка: доступно в Baseline в статусе «Newly Available» с 18 сентября 2023 года.
- 7 ноября 2025

reversed() — обратный отсчёт в CSS-счётчиках
Функция reversed() в CSS позволяет создавать счётчики, которые уменьшаются, а не увеличиваются. Это удобно для обратных отсчётов, нумерации элементов с конца и чисто-CSS эффектов без JavaScript.
Статус: экспериментальная функция (Limited Availability, поддержка ограничена).
Синтаксис функции:
/* Объявление обратного счётчика */
counter-reset: reversed(<имя-счётчика>) [начальное-значение]?;
/* Изменение счётчика */
counter-increment: <имя-счётчика> <число>;
Функция reversed() оборачивает имя счётчика в counter-reset.
counter-increment работает как обычно; чтобы счётчик убывал, задайте отрицательное значение.
- 5 ноября 2025
CSS if() — провал или прорыв?
Разбираем спорную новинку 2025 года — CSS‑функцию if(), которая появилась в экспериментальном режиме в Chrome. Смотрим, как она работает, где помогает, где подводит и чего от неё ждать дальше.
Летом 2025 года в Chrome появилась экспериментальная функция if(). На первый взгляд это звучит как революция: наконец‑то условия в CSS! Но так ли всё радужно? Разберёмся спокойно и по шагам.
- 1 ноября 2025
24 новые возможности фронтенда в 2025
Год 2025 принёс фронтенд-разработчикам множество долгожданных новинок, которые делают веб-платформу более мощной и удобной. Вот краткий обзор ключевых возможностей, которые уже начинают поддерживаться в современных браузерах.
- 24 октября 2025

Удаление CSS-свойств с помощью свойства unset
Ключевое слово CSS unset, представленное в спецификации CSS Cascading and Inheritance Level 3, — это мощный инструмент для сброса значений свойств с учетом контекста. Доступное в браузерах с 21 сентября 2018 года (статус Baseline «Widely Available»), unset позволяет фронтенд-разработчикам гибко возвращать свойства CSS к их значениям по умолчанию или унаследованным значениям. В этой статье мы подробно разберем механику, исторический контекст, варианты применения и практические сценарии использования unset.
Предполагается, что читатель знаком с основами CSS, включая каскад, специфичность и наследование. Мы рассмотрим, как unset вписывается в современные рабочие процессы CSS, сравним его с родственными ключевыми словами initial и revert, а также приведем практические примеры для демонстрации его полезности.
- 24 октября 2025
Chrome DevTools останется без «живого» редактирования JS
Инструменты разработчика в браузере Chrome лишатся одной из своих экспериментальных возможностей — «живого редактирования» JavaScript-кода. Как сообщила команда разработчиков в официальном блоге, функция будет полностью удалена в феврале 2026 года с выходом версии Chrome 145. Это решение отражает эволюцию современных инструментов веб-разработки.
- 23 октября 2025

Обрезка блоков текста с помощью line-clamp
Функция line-clamp находится в статусе ограниченной доступности в Baseline, но уже широко используется для создания аккуратных текстовых блоков. Это свойство позволяет ограничить отображение текста заданным количеством строк, скрывая всё, что выходит за пределы. Оно идеально подходит для превью статей, цитат или карточек товаров, где нужно показать только часть текста, не перегружая страницу.
В основе line-clamp лежит комбинация свойств, включающих display: -webkit-box, -webkit-line-clamp и -webkit-box-orient: vertical. Современные браузеры поддерживают стандартное свойство line-clamp без префиксов, но для максимальной совместимости лучше использовать и префиксные версии. Это особенно важно для старых версий браузеров, таких как Safari.
Давайте разберём, как работает line-clamp, и посмотрим на несколько примеров.
- 18 октября 2025

Форматирование относительного времени в JavaScript
API Intl.RelativeTimeFormat доступно в Baseline в статусе «Widely Available» с 16 марта 2023 года. Это мощный инструмент для отображения относительного времени в локализованном виде, например, «через минуту», «вчера» или «2 недели назад». Он автоматически адаптируется к языку и культурным особенностям региона, делая интерфейс более понятным и дружелюбным для пользователей.
В этой статье мы разберём, как работает Intl.RelativeTimeFormat, и приведём несколько примеров его использования.
- 17 октября 2025

Что такое null-коалесцентный оператор ?? в JavaScript
Операторы ?? и ??= стали доступны в Baseline в статусе «Widely Available» с 16 марта 2023 года. Они упрощают работу с переменными, которые могут быть null или undefined, позволяя задавать значения по умолчанию или обновлять переменные только в этих случаях. Это делает код чище и понятнее, особенно при работе с потенциально отсутствующими данными.
В этой статье мы разберём, как работают операторы нулевого слияния, и покажем примеры их использования.
- 15 октября 2025

Кодирование и декодирование Base64 с atob и btoa
Функции btoa() и atob() — это встроенные средства JavaScript для кодирования и декодирования строк в формате Base64.
С 20 марта 2019 года они входят в статус «Widely Available» по Baseline — значит, поддерживаются всеми современными браузерами и подходят для использования в продакшене.
- 14 октября 2025
Как в 2025 году вибрануть сайтом
Шутки в сторону, на кону серьёзная задача — нужно вибрануть сайтом. К счастью, в 2025 году это не очень сложно и нужна поддержка есть. Vibration API поддерживается почти везде, кроме Safari. Конечно, ещё нужно устройство с вибромотором, но тут подойдут почти все телефоны, если есть нужный браузер.
Не будем растягивать эту инструкцию и давайте начнём с базовой страницы (это будет просто кнопка, выровненная по центру.)
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Кнопка по центру</title>
</head>
<body>
<button>Нажми меня</button>
</body>
</html>
Ну или ладно, сначала она вообще не по центру. Добавим стили, чтобы кнопка получила цвет и оказалась там, где мы хотим. Вставьте весь этот тег <style> куда-нибудь внутри <head>.
<style>
body {
margin: 0;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background-color: #f0f0f0;
}
button {
padding: 15px 30px;
font-size: 18px;
background-color: #007bff;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
}
button:hover {
background-color: #0056b3;
}
</style>
Чтобы добавить поддержку вибрации, слегка изменим код внутри <body> — добавим скрипт, который проверяет поддержку вибрации и вибрирует.
<body>
<button id="vibrateButton">Нажми меня</button>
<p id="status">Проверка поддержки вибрации...</p>
<script>
const vibrateButton = document.getElementById('vibrateButton');
const statusText = document.getElementById('status');
if ('vibrate' in navigator) {
statusText.textContent = 'Vibration API поддерживается!';
vibrateButton.addEventListener('click', () => {
navigator.vibrate(200); // Вибрация на 200 мс
statusText.textContent = 'Устройство завибрировало!';
});
} else {
vibrateButton.disabled = true;
statusText.textContent = 'Vibration API не поддерживается.';
}
</script>
</body>
И всё!
Есть, конечно, нюанс. В теории с поддержкой всё хорошо, а на практике при проверке у редакции на Андроид-смартфоне вибрация поддерживается в Chrome и Яндекс-браузере, а в Firefox не работает (хотя на CanIUse и написано обратное).
Но теперь, если вы хотите клёво вибрануть телефоном в ответ на реакцию в каком-нибудь чатике, вы точно знаете, что делать.
- 3 октября 2025

Как найти элемент в массиве по индексу на JS
Метод at() возвращает элемент массива по индексу. Отрицательные индексы позволяют отсчитывать элементы с конца массива.
const numbers = [10, 20, 30, 40, 50];
// Получаем элемент по индексу
console.log(numbers.at(0)); // 10
console.log(numbers.at(2)); // 30
// С конца массива
console.log(numbers.at(-1)); // 50
console.log(numbers.at(-3)); // 30
Здесь показано, что at() работает как обычный доступ по индексу, но с преимуществом: отрицательные числа позволяют легко получать элементы с конца массива. Это особенно удобно, когда размер массива заранее неизвестен.
// Использование с типизированными массивами
const typedArr = new Uint8Array([1, 2, 3, 4]);
console.log(typedArr.at(1)); // 2
console.log(typedArr.at(-2)); // 3
Метод одинаково хорошо работает и с типизированными массивами (TypedArray), что делает его универсальным инструментом для работы с любыми последовательностями чисел.
// Безопасный доступ
console.log(numbers.at(10)); // undefined
console.log(numbers.at(-10)); // undefined
Если индекс выходит за границы массива, метод возвращает undefined. Это безопаснее, чем напрямую обращаться к элементу через квадратные скобки, так как код остаётся читаемым и предсказуемым.
Метод at() делает код чище и удобнее, особенно когда нужно работать с элементами с конца массива или с переменной длиной массива.
- 3 октября 2025
Как защитить VPS от взлома: 10 простых правил
Если вы новичок и впервые работаете с VPS на Ubuntu, важно сразу настроить базовую защиту. Эти 10 правил помогут снизить риск взлома без сложной конфигурации.
- 2 октября 2025
Основы работы с Ubuntu VPS для новичка: установка node.js и веб-сервера
Допустим, вы только что купили VPS с Ubuntu, чтобы захостить там какого-нибудь бота или даже простой сайт, экспериментов с Linux и автоматизации задач. В этой статье мы пошагово разберём базовые команды и операции, которые нужны каждому новичку, чтобы уверенно работать в терминале, управлять файлами, процессами и устанавливать приложения. Все примеры даны на практике, с пояснениями, чтобы вы сразу могли применять их на своём сервере.
- 1 октября 2025

Как подключиться к VPS через Visual Studio Code: короткий гайд
В прошлой заметке мы настроили доступ к нашему VPS-серверу, а теперь попробуем подключаться к нему через VS Code, чтобы было удобнее заливать код.
Заходите в VS Code и найдите слева вкладку Remote Explorer. Там будет пункт SSH и кнопка с плюсиком рядом.

Смело жмите в плюсик, сверху появится такой пункт. Туда нужно ввести команду для подключения к ssh, например, такую (не забудьте подставить свой IP-адрес).
ssh root@194.00.00.00
На следующем шаге выберем файл конфигурации. Нужен первый в списке:

И после этого появится окошко с успехом — можно подключиться или открыть конфиг (это просто файл с адресом и логином). Подключаемся и нас спросят пароль:

Вводите не стесняясь. Если у вас не установлен VS Code Server, то нужно подождать, пока он скачается. А дальше готово — вы на собственном сервере, можете легко загружать, создавать и удалять файлы. Всё сохранится автоматически после сохранения.

Надеемся, что вы будете аккуратными и никому не расскажете свой пароль. А чтобы не вводить его каждый раз, прочитайте статью о работе с Git через консоль, там есть раздел о создании SSH-ключей.
- 27 сентября 2025

Как сделать свой сайт на VPS. Самая простая инструкция
Итак, вы купили себе личный сервер, вообще не важно, для чего именно. Может, чтобы поднять там телеграм‑бота, а может, чтобы сделать сервер в Майнкрафте. Но рано или поздно появляется желание сделать себе сайт и показать друзьям и знакомым.
Давайте разбираться.
- 26 сентября 2025

CSS-свойство image-orientation: исправляем ориентацию изображений из EXIF
При загрузке фотографий со смартфонов или камер на сайтах порой возникает проблема с неправильной ориентацией изображений. Это связано с тем, что устройства сохраняют ориентацию изображения в метаданных EXIF, а браузеры могут не всегда учитывать эти данные при отображении. Свойство CSS image-orientation позволяет корректировать ориентацию изображений, обеспечивая их правильное отображение.
- 25 сентября 2025
7 интересных тем для Visual Studio Code этой осенью
Visual Studio Code — один из самых популярных редакторов кода, и он действительно преображается с помощью красивых и удобных цветовых тем. Мы собрали для вас подборку из 7 свежих и стильных тем, которые помогут настроить рабочее пространство этой осенью. В списке вы найдёте и тёмные, и светлые варианты — от минимализма до неонового киберпанка.
- 19 сентября 2025
