регулярные выражения php кириллица

PHP. Кириллица в регулярных выражениях

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллицаСтолкнулся я с проблемой, а именно сайт не в какую не хотел поддерживать русские пароли. При регистрации пользователь в качестве пароля мог использовать только цифры и латинские буквы. Но для рунета также актуальна поддержка паролей с использованием кириллицы. Преимущества в том, что такой пароль пользователь легче запоминает, а также более высокая безопасность, на тот случай если его попытаются подобрать. Например китайские хакеры)).

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

Перед регулярным выражением в скрипте следует указать локаль, делается это написанием следующей команды (если используется кодировка UTF-8, если CP1251 то пишем её):

далее само регулярное выражение с ключем \u, чтобы обработчик знал, что в вырожении используются национальные символы.

Таким образом мы научили регулярные выражения дружить с кириллицей. Если есть какие-то дополнения то пожалуйста пишите.

Похожие записи

4 комментария to “PHP. Кириллица в регулярных выражениях”

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Не вырезает согласно шаблону прочие символы, типа знака вопроса и т.д. Если убрать ключ \u, то вырезает, но не дружит с кириллицей…

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Разобрался. Ключ не там ставил
/[^a-zA-Z0-9а-яА-Я ]/u — верно
/[^a-zA-Z0-9а-яА-Я ]u/ — неверно

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Была похожая задача с кириллицей, только на проверку русских символов в слове без цифр, то бишь слово должно быть написано ТОЛЬКО русскими буквами.
Писать через setlocale(LC_ALL, «ru_RU.UTF-8»); порой не вариант — не каждый сервак работает с кириллицей (как и в моем случае тоже). Поэтому решил обойти другим способом через 2 функции. Может кому то понадобится — буду рад

$arr = array(«А» => «A», «Б» => «B», «В» => «V», «Г» => «G», «Д» => «D»,
«Е» => «E», «Ё» => «YO», «Ж» => «ZH»,
«З» => «Z», «И» => «I», «Й» => «J», «К» => «K», «Л» => «L»,
«М» => «M», «Н» => «N», «О» => «O», «П» => «P», «Р» => «R»,
«С» => «S», «Т» => «T», «У» => «U», «Ф» => «F», «Х» => «X»,
«Ц» => «C», «Ч» => «CH», «Ш» => «SH», «Щ» => «SHH», «Ъ» => «‘»,
«Ы» => «Y», «Ь» => «», «Э» => «E», «Ю» => «YU», «Я» => «YA»,
«а» => «a», «б» => «b», «в» => «v», «г» => «g», «д» => «d»,
«е» => «e», «ё» => «yo», «ж» => «zh»,
«з» => «z», «и» => «i», «й» => «j», «к» => «k», «л» => «l»,
«м» => «m», «н» => «n», «о» => «o», «п» => «p», «р» => «r»,
«с» => «s», «т» => «t», «у» => «u», «ф» => «f», «х» => «x»,
«ц» => «c», «ч» => «ch», «ш» => «sh», «щ» => «shh», «ъ» => «»,
«ы» => «y», «ь» => «», «э» => «e», «ю» => «yu», «я» => «ya»,);

Соль в том, что кол-во замен должно равняться кол-ву символов в слове

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

А как через preg_match (исключительно через эту функцию) искать внутри файла кириллические слова?

Источник

Регулярные выражения в PHP. Функция preg_match и utf-8

Дата публикации: 2016-07-25

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

От автора: приветствую вас, друзья. В предыдущей статье мы с вами говорили о специфике работы регулярных выражений в PHP с кириллицей. Однако использовали мы при этом кодировку windows-1251. В этой статье мы уже будем работать с кодировкой utf-8 и используем функцию preg_match для поиска кириллицы в тексте. Начнем?

Итак, в прошлой статье мы с вами использовали в качестве подопытного кролика следующую строку текста: «Иван Родил Девчонку, Велел Тащить Пелёнку». И вот такое регулярное выражение:

Этот шаблон вполне корректно работал с текстом в кодировке windows-1251, то есть с однобайтовой кодировкой. Сейчас эта кодировка используется все реже и реже. Практически стандартом стала кодировка utf-8. Давайте используем ее:

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Посмотрим на результат:

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Упс, что-то не то. Почему так? Дело в том, что регулярные выражения по умолчанию работают с однобайтовой кодировкой. Кодировка же utf-8 — многобайтная. Для того, чтобы все работало корректно, необходимо всего лишь использовать специальный модификатор — u, который переводит шаблон регулярного выражения в режим совместимости с юникодом.

Вот теперь все работает корректно:

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Как видим, все достаточно просто. Не забывайте об этом модификаторе и регулярные выражения будут правильно работать с юникодом. Стоит отметить, что этот модификатор присущ PHP. В JavaScript, к примеру, такого модификатора нет и регулярные выражения будут корректно работать с текстом в любом случае.

На этом мы будем завершать сегодняшнюю статью. Больше о регулярных выражениях вы можете узнать из нашего курса по регулярным выражениям. Удачи!

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Хотите изучить регулярные выражения на PHP?

Посмотрите 12-ти часовой видео курс по регулярным выражениям на PHP!

Источник

Регулярные выражения кириллица PHP и оригинальная личность

Дата публикации: 2017-03-27

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

От автора: иногда среди серости будней встречаются оригинальные личности, заряжающие тебя позитивом на целую неделю. Вот на днях встретил одного разработчика, который трактует себя «русофилом». Этот от него я узнал, что регулярные выражения кириллица PHP – вполне совместимые вещи.

Зачем русский язык?

Когда-то я уже говорил, что регулярные выражения чаще всего применяются в различных типах веб-форм. В данной ситуации мы обратим свой «взор» на регистрационные формы и реализацию поддержки ими значений на русском.

Кстати, упомянутый выше «персонаж» во всех своих проектах реализует поддержку ввода кириллицы (в том числе и в формах). По его мнению, российские пользователи должны писать только на русском. Конечно, звучит немного радикально, но прок от этого тоже есть.

В PHP регулярных выражениях поддержка русских букв желательна. Таким образом вы немного улучшаете UX сайта и повышаете уровень безопасности.

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Частая проблема русификации форм

Теперь рассмотрим частую проблему, встречающуюся в PHP c русскими буквами. Регулярные выражения, в которых используются не классы символов, будут исправно работать с кириллическими значениями. Например:

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Да какие тут проблемы! Все и так работает нормально! К сожалению, не все так гладко с часто употребляемой функцией для операций с «регулярками» preg_match (). В качестве доказательства применим шаблон, созданный с помощью символьных классов:

В Денвере этот пример будет работать нормально, но на других «нелокальных» серваках – не факт. Поэтому на специализированных форумах часто можно встретить вопросы разработчиков, столкнувшихся с этой проблемой. Тут может быть несколько вариантов ее решения:

Прописка локали с помощью функции setlocale(), в параметрах которой также указывается кодировка русских букв в PHP:

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Если дальше капнуть, то многие советуют указывать вместо u модификатор U. Но это разные модификаторы. Например, последний призван бороться с «жадностью» регулярок. Больше об этом написано в документации языка. Это также стоит учитывать при поиске с помощью PHP русских букв в URL.

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Хотите изучить регулярные выражения на PHP?

Посмотрите 12-ти часовой видео курс по регулярным выражениям на PHP!

Источник

Проверка данных регулярными выражениями в PHP

Содержание:

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Сборник основных шаблонов регулярных выражений на PHP для проверки данных.

Проверка набора из латинских букв и цифр

Регулярное выражение для проверки набора только из латинских букв и цифр:

Если необходимо добавить в набор некоторые символы:

Проверка на кириллицу и цифры

Регулярное выражение для проверки набора только из букв кириллицы и цифр:

Проверка на число

Регулярное выражение для проверки данных на целое число:

Регулярное выражение для проверки данных на тип Float (числа с плавающей точкой):

Проверка логина

Регулярное выражение для проверки логина. Разрешено использовать только латинские буквы, цифры, тире и знак подчёркивания. Длина логина от 2 до 20 символов (включительно):

Проверка Email

Регулярное выражение для проверки Email:

Проверка номера телефона

Регулярное выражение для проверки номера телефона:

Проверка даты по формату

Формат MySQL YYYY-MM-DD :

Проверка md5-хэша

Регулярное выражение для проверки на корректность md5-хэша:

Проверка IP адресов

Регулярное выражение для проверки IPv4 адреса:

Проверка IPv6 адреса:

Проверка доменного имени

Регулярное выражение для проверки на корректность доменного имени сайта:

Источник

Регулярные выражения в PHP. Кириллица

Дата публикации: 2016-07-21

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

От автора: приветствую вас, друзья. В этой статье мы с вами узнаем некоторую специфику работы регулярных выражений с кириллицей вообще и конкретно в PHP. Приступим?

До этого, в предыдущих статьях мы с вами использовали в качестве текста исключительно латинницу, кириллицы мы избегали. Теперь давайте попробуем найти все кириллические буквы в строке. В качестве «испытуемого» мы используем фразу, которая может быть знакома кому-то со школьной скамьи: «Иван Родил Девчонку, Велел Тащить Пелёнку». Эта фраза призвана была помочь запомнить падежи в русском языке, поскольку первая буква каждого слова совпадает с тем или иным падежом.

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

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Как видим, этот шаблон действительно не подходит. Для поиска кириллицы мы должны использовать символьный класс — [], в котором укажем диапазон кириллических букв от а до я.

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Этот шаблон регулярного выражения уже лучше. Но все еще есть нюансы — не найдена буква ё. Эта буква в регулярных выражениях не входит в диапазон а-я и ее нужно указывать отдельно.

регулярные выражения php кириллица. Смотреть фото регулярные выражения php кириллица. Смотреть картинку регулярные выражения php кириллица. Картинка про регулярные выражения php кириллица. Фото регулярные выражения php кириллица

Вот теперь все отлично. Все кириллические буквы найдены. Однако шаблон мы тестировали в реализации регулярных выражений для JavaScript. Давайте попробуем протестировать его в PHP скрипте. Обратите внимание, я использую версию PHP 5.4 (в версиях ниже может быть другой результат). Также еще один нюанс — мы используем кодировку windows-1251 (в следующей статье мы узнаем нюансы работы с кодировкой utf-8).

Итак, скрипт ниже даст результат, который вы увидите на следующем скриншоте:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *