Свежие статьи

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}$/
6HEX-цвет/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/
7IPv4-адрес/^(?:(?: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]+$/
13YouTube ID из ссылки/(?:v=|\/embed\/|\.be\/)([^?&"]{11})/
14Удалить HTML-теги/<[^>]*>/g
15Удалить лишние пробелы/\s+/g
16Найти все цифры/\d+/g
17Заменить цифры на */\d/g
18CamelCase → snake_case/([A-Z])/g
19snake_case → camelCase/_[a-z]/g
20Первая буква заглавная/^\w/
21Все слова с заглавной/\b\w/g
22Повторяющиеся слова/\b(\w+)\b\s+\1\b/gi
23UUID/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i
24Base64/^(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]+)*$/
38IPv6 (упрощённо)/^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/
39Только пробелы и табы/^[\s\t]*$/
40Случайный пароль 12 символов (паттерн)/[A-Za-z0-9]{12}/

Сохрани страницу — и 40 самых полезных регулярных выражений всегда под рукой!

JS
  • 9 ноября 2025
Полный гайд по объекту Date в JavaScript

Полный гайд по объекту Date в JavaScript

Объект Date позволяет создавать, сравнивать и форматировать дату и время. Используется для отображения текущего времени, вычисления интервалов и работы с таймзонами в веб-приложениях.

Доступно в Baseline в статусе «Widely Available» с 2018-01-29

Читать дальше
JS
  • 8 ноября 2025
@counter-style — создание собственных стилей счётчиков в CSS

@counter-style — создание собственных стилей счётчиков в CSS

@counter-style — это правило CSS, которое позволяет определять свои собственные стили нумерации для списков, счётчиков и других элементов, использующих функцию counter(). Вместо привычных арабских цифр, латинских букв или стандартных маркеров вы можете задать любые символы, изображения или даже сложные последовательности.

Поддержка: доступно в Baseline в статусе «Newly Available» с 18 сентября 2023 года.

Читать дальше
CSS
  • 7 ноября 2025
reversed() — обратный отсчёт в CSS-счётчиках

reversed() — обратный отсчёт в CSS-счётчиках

Функция reversed() в CSS позволяет создавать счётчики, которые уменьшаются, а не увеличиваются. Это удобно для обратных отсчётов, нумерации элементов с конца и чисто-CSS эффектов без JavaScript.

Статус: экспериментальная функция (Limited Availability, поддержка ограничена).

Синтаксис функции:

/* Объявление обратного счётчика */
counter-reset: reversed(<имя-счётчика>) [начальное-значение]?;

/* Изменение счётчика */
counter-increment: <имя-счётчика> <число>;

Функция reversed() оборачивает имя счётчика в counter-reset. counter-increment работает как обычно; чтобы счётчик убывал, задайте отрицательное значение.

Читать дальше
CSS
  • 5 ноября 2025

CSS if() — провал или прорыв?

Разбираем спорную новинку 2025 года — CSS‑функцию if(), которая появилась в экспериментальном режиме в Chrome. Смотрим, как она работает, где помогает, где подводит и чего от неё ждать дальше.

Летом 2025 года в Chrome появилась экспериментальная функция if(). На первый взгляд это звучит как революция: наконец‑то условия в CSS! Но так ли всё радужно? Разберёмся спокойно и по шагам.

Читать дальше
CSS
  • 1 ноября 2025

24 новые возможности фронтенда в 2025

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

Читать дальше
HTML
  • 24 октября 2025
Удаление CSS-свойств с помощью свойства unset

Удаление CSS-свойств с помощью свойства unset

Ключевое слово CSS unset, представленное в спецификации CSS Cascading and Inheritance Level 3, — это мощный инструмент для сброса значений свойств с учетом контекста. Доступное в браузерах с 21 сентября 2018 года (статус Baseline «Widely Available»), unset позволяет фронтенд-разработчикам гибко возвращать свойства CSS к их значениям по умолчанию или унаследованным значениям. В этой статье мы подробно разберем механику, исторический контекст, варианты применения и практические сценарии использования unset.

Предполагается, что читатель знаком с основами CSS, включая каскад, специфичность и наследование. Мы рассмотрим, как unset вписывается в современные рабочие процессы CSS, сравним его с родственными ключевыми словами initial и revert, а также приведем практические примеры для демонстрации его полезности.

Читать дальше
CSS
  • 24 октября 2025

Chrome DevTools останется без «живого» редактирования JS

Инструменты разработчика в браузере Chrome лишатся одной из своих экспериментальных возможностей — «живого редактирования» JavaScript-кода. Как сообщила команда разработчиков в официальном блоге, функция будет полностью удалена в феврале 2026 года с выходом версии Chrome 145. Это решение отражает эволюцию современных инструментов веб-разработки.

Читать дальше
JS
  • 23 октября 2025
Обрезка блоков текста с помощью line-clamp

Обрезка блоков текста с помощью line-clamp

Функция line-clamp находится в статусе ограниченной доступности в Baseline, но уже широко используется для создания аккуратных текстовых блоков. Это свойство позволяет ограничить отображение текста заданным количеством строк, скрывая всё, что выходит за пределы. Оно идеально подходит для превью статей, цитат или карточек товаров, где нужно показать только часть текста, не перегружая страницу.

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

Давайте разберём, как работает line-clamp, и посмотрим на несколько примеров.

Читать дальше
CSS
  • 18 октября 2025
Форматирование относительного времени в JavaScript

Форматирование относительного времени в JavaScript

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

В этой статье мы разберём, как работает Intl.RelativeTimeFormat, и приведём несколько примеров его использования.

Читать дальше
JS
  • 17 октября 2025
Что такое null-коалесцентный оператор ?? в JavaScript

Что такое null-коалесцентный оператор ?? в JavaScript

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

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

Читать дальше
JS
  • 15 октября 2025
Кодирование и декодирование Base64 с atob и btoa

Кодирование и декодирование Base64 с atob и btoa

Функции btoa() и atob() — это встроенные средства JavaScript для кодирования и декодирования строк в формате Base64.

С 20 марта 2019 года они входят в статус «Widely Available» по Baseline — значит, поддерживаются всеми современными браузерами и подходят для использования в продакшене.

Читать дальше
JS
  • 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 и написано обратное).

Но теперь, если вы хотите клёво вибрануть телефоном в ответ на реакцию в каком-нибудь чатике, вы точно знаете, что делать.

JS
  • 3 октября 2025
Как найти элемент в массиве по индексу на JS

Как найти элемент в массиве по индексу на 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() делает код чище и удобнее, особенно когда нужно работать с элементами с конца массива или с переменной длиной массива.

JS
  • 3 октября 2025

Основы работы с Ubuntu VPS для новичка: установка node.js и веб-сервера

Допустим, вы только что купили VPS с Ubuntu, чтобы захостить там какого-нибудь бота или даже простой сайт, экспериментов с Linux и автоматизации задач. В этой статье мы пошагово разберём базовые команды и операции, которые нужны каждому новичку, чтобы уверенно работать в терминале, управлять файлами, процессами и устанавливать приложения. Все примеры даны на практике, с пояснениями, чтобы вы сразу могли применять их на своём сервере.

Читать дальше
Софт
  • 1 октября 2025
Как подключиться к VPS через Visual Studio Code: короткий гайд

Как подключиться к VPS через Visual Studio Code: короткий гайд

В прошлой заметке мы настроили доступ к нашему VPS-серверу, а теперь попробуем подключаться к нему через VS Code, чтобы было удобнее заливать код.

Заходите в VS Code и найдите слева вкладку Remote Explorer. Там будет пункт SSH и кнопка с плюсиком рядом.

Remote Explorer в VS Code

Смело жмите в плюсик, сверху появится такой пункт. Туда нужно ввести команду для подключения к ssh, например, такую (не забудьте подставить свой IP-адрес).

ssh root@194.00.00.00
Ввод ssh команды

На следующем шаге выберем файл конфигурации. Нужен первый в списке:

Выбор конфигурационного файла

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

Запрос пароля при подключении

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

Работа с файлами на сервере через VS Code

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

Софт
  • 27 сентября 2025
Как сделать свой сайт на VPS. Самая простая инструкция

Как сделать свой сайт на VPS. Самая простая инструкция

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

Давайте разбираться.

Читать дальше
Софт
  • 26 сентября 2025
CSS-свойство image-orientation: исправляем ориентацию изображений из EXIF

CSS-свойство image-orientation: исправляем ориентацию изображений из EXIF

При загрузке фотографий со смартфонов или камер на сайтах порой возникает проблема с неправильной ориентацией изображений. Это связано с тем, что устройства сохраняют ориентацию изображения в метаданных EXIF, а браузеры могут не всегда учитывать эти данные при отображении. Свойство CSS image-orientation позволяет корректировать ориентацию изображений, обеспечивая их правильное отображение.

Читать дальше
CSS
  • 25 сентября 2025

7 интересных тем для Visual Studio Code этой осенью

Visual Studio Code — один из самых популярных редакторов кода, и он действительно преображается с помощью красивых и удобных цветовых тем. Мы собрали для вас подборку из 7 свежих и стильных тем, которые помогут настроить рабочее пространство этой осенью. В списке вы найдёте и тёмные, и светлые варианты — от минимализма до неонового киберпанка.

Читать дальше
Софт
  • 19 сентября 2025