10 регулярных выражений для web-разработчиков

Регулярные выражения, очень полезная штука для разработчиков. С помощью них можно найти одинаковые слова в тексте, проверить введенные данные и еще много полезных вещей. В этом посте я собрал 10 регулярных выражений, которые должны быть под рукой у любого web-разработчика.


Регулярное выражение Значение
foo Строка «foo»
^foo «foo» в начале строки
foo$ «foo» в конце строки
^foo$ В строке содержится только одно слово»foo»
	a, b, или c
[a-z]	Все буквы в нижнем регистре
[^A-Z]	Любой символ, который не является буквой в верхнем регистре
[0-9.-]	Любая цифра, точка или дефис
^[a-zA-Z0-9_]{1,}$	Любое слово содержащее 1 букву, цифру или _

[b]PHP функции для работы с регулярными выражениями


Функция Описание
preg_match() Функция preg_match() ищет в заданном тексте совпадения с шаблоном, если совпадене есть возвращает true, если нет то false
preg_match_all() Функция выполняет поиск шаблона в статье
preg_replace() Функция preg_replace() выполняет поиск и замену по регулярному выражению
preg_split() Функция preg_split() разбивает строку по регулярному выражению
preg_grep() Функция preg_grep() возвращает массив, состоящий из элементов входящего массива , которые соответствуют заданному шаблону
preg_ quote() Функция preg_ quote() принимает строку и добавляет обратный слеш перед каждым служебным символом. Проще говоря, она экранирует символы

Валидация имени домена

Проверяем имя домена.

$url = "http://2coders.ru/";
if (preg_match('/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/', $url)) {
    echo "Все правильно";
} 
else
{
    echo "Вы ввели неправильное имя домена";
}


Выделение определенного слова в тексте

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

$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque porttitor, odio at feugiat vulputate, neque nulla dignissim ante, ut posuere leo arcu at mauris.";
$text = preg_replace("/\b(odio)\b/i", '<span style="background:#eef938">\1</span>', $text);
echo $text;


Удаление повторяющихся слов

Написали пару одинаковых слов? Не проблема, с помощью этого регулярного выражения вы сможете их легко удалить.

$text = preg_replace("/s(w+s)1/i", "$1", $text);


Удаление повторяющихся знаков препинания

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

$text = preg_replace("/.+/i", ".", $text);


Автоматическая генерация смайликов

Замена смайликов на картинки.

$text = "Текст со смайликом =)";
echo str_replace('=)','<img src="smileys/smile.png">',$text);


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

Логин может состоять из букв, цифр, дефисов и подчёркиваний. Длина от 3 до 16 символов.

!preg_match("/^[a-z0-9_-]{3,16}$/",$login)


Проверка email

Email должен быть такого вида: логин@поддомен.домен.

!preg_match("/^([a-z0-9_\.-]+)@([a-z0-9_\.-]+)\.([a-z\.]{2,6})$/",$email)


Проверяем шестнадцатиричный цвет

Цвет может быть задан и без «#»;


$color = "#555555";
if (preg_match('/^#?([a-f0-9]{6}|[a-f0-9]{3})$/', $color)) 
{
echo "Цвет введен правильно";
}


Получаем title страницы

С помощью этого регулярного выражения, можно вытащить title страницы.

$fp = fopen("http://www.2coders.ru","r");
while (!feof($fp) ){
    $page .= fgets($fp, 4096);
}
 
$title = eregi("<title>(.*)</title>",$page,$regs);
echo $regs[1];
fclose($fp);


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

Время должно быть задано в таком виде: mm:hh.

$time = "10:11";
if (!preg_match('/^([0-1][0-9]|[2][0-3]):([0-5][0-9])$/', $time)) 
{
    echo "Время введено неправильно";
}
Теги:
match, Функция, replace, title, выражения, Проверка, помощью, можно, регулярному, поиск, может, выражению , email, возвращает, строку, домена, 2coders, правильно, повторяющихся, Проверяем, этого, регистре , quote, регулярного, split, выполняет, слово, Время, строки , тексте, слова, color, сможете, задано, легко
Добавлено: 27 Февраля 2015 08:04:23 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...