Несколько Regex’ов

Сколько я не пытался выучить язык regex’ов, так у меня это толком и не получилось. Поэтому я постоянно пополняю свою подборку выражений на все случаи жизни.
Вот небольшая часть из них:

  1. проверка валидности URL
    /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \?=.-]*)*\/?$/
  2. стойкость пароля
    • пароль должен содержать минимум 1 символ в верхнем регистре
    • пароль должен содержать минимум 1 символ в нижнем регистре
    • пароль должен содержать минимум 1 цифру или специальный символ
    • пароль должен иметь минимум 8 символов в длину
    • максимальная длина пароля не ограничивается
    (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$
  3. незакрытые теги img
    по XHTML стандарту все теги должны быть закрытыми, данный regex ищет незакрытые теги

    <img([^>]+)(\s*[^\/])>
  4. ищем все CSS атрибуты
    с помощью данного выражения можно найти все css атрибуты

    \s(?[a-zA-Z-]+)\s[:]{1}\s*(?[a-zA-Z0-9\s.#]+)[;]{1}
  5. проверка IBAN кода
    ([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)

Динамически подгружаемый контент в Joomla

Не так давно я программировал сайт, основная задумка дизайнера – мы находимся в кабине лифта, кнопки переключения этажей – меню «Новости», «Контакты» и т.п. Основной контент находится «в дверях лифта». При нажатии на кпонку этажа, двери закрываются, происходит загрузка содержимого, двери открываются.

В результате сайт получился полностью динамическим, т.е. все содержимое (включая поиск) загружается с помощью AJAX, на каждую страницу устанавливается собственная ссылка. В тоже время, посетители у которых отключен джаваскипт смогут пользоваться сайтом, и соотвественно сайт будет проиндексирован поисковыми роботами.

Полностью


Винкс игры

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


На строчку выше конкурента

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

Полностью


Preload изображений с помощью JQuery

Нашел интересное и простое решение для предзагрузки изображений.

jQuery.preloadImages = function(){
  for(var i = 0; i < arguments.length; i++){
     jQuery("").attr("src", arguments[i]);
  }
}

Ипользовать так:

$(function(){
   $.preloadImages('image1.png', 'image2.png', 'image3.png');
});

Создаем простейшее выпадающее меню на JQuery

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

Полностью


Ошибка Invalid Label с JSON

Столкнулся с ошибкой при парсинге JSON строки через eval: Invalid Label. Обычно код выглядит примерно так:

var jsonString = '{"val1": "some data", "val2": "some data"}';
var myObj = eval(jsonString);

Проблема возникает из-за того, что eval переводит первый пункт строки JSON как JavaScript Label. Решением будет добавлено скобок в начале и в конце строки.

var jsonString = '{"val1": "some data", "val2": "some data"}';
var myObj = eval('(' + jsonString + ')');

Вставка строки в подстроку в PHP

Большинство языков программирования имеют функции для вставки строки в строку с указанной позиции. Но если посмотреть раздел String functions в PHP, то функции str_insert Вы не найдете.
В интеренете можно встретить массу подобных функций, со всяческими ухищрениями. Но есть гораздо более простой вариант из всех существующих:

$newstring = substr_replace($orig_string, $insert_string, $position, 0);

Создание выпадающего списка с помощью JHTML в Joomla

Класс JHTML используется повсеместно в Joomla, но в тоже время он может показаться несколько загадочным классом, т.к. обычно мы видим странный вызов JHTML::_(), куда через параметр передаются какие то загадочные строки из которых потом получается не менее загадочный HTML.

Первое, что необходимо знать, JHTML – это сервисный класс, который вызывает классы потомки, исходя из входящих параметров. До конца не понятно, почему бы сразу не вызывать класс потомок, но коль уж решили разбираться в стиле кодирования под Joomla, то нужно делать так как предписывает сообщество, чтобы код смогли понять и другие разработчики.

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

Полностью


Константы Joomla

При разработке компонентов/модулей/шаблонов/плагинов/etc обязательно приходится сталкиваться с константами. Всего

в Joomla насчитывается более 400 констант.

Каждый видел самую главную константу, которая есть во всех php файлах джумлы:

defined('_JEXEC') or die('Restricted access');

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

DS Разделитель директорий (/)
JPATH_ADMINISTRATOR Путь к админке (/joomla/administrator)
JPATH_BASE Путь к вступлению каталог (/joomla)
JPATH_CACHE Путь к каталогу с кэшем (/joomla/cache)
JPATH_COMPONENT Путь к компоненту (/joomla/components/com_example)
JPATH_COMPONENT_ADMINISTRATOR Путь к административной части компонента (/joomla/administrator/components/com_example)
JPATH_COMPONENT_SITE Фронтенд компонента (/joomla/components/com_example)
JPATH_CONFIGURATION Путь к конфигу (/joomla)
JPATH_INSTALLATION Путь к инстальнику (/joomla/installation)
JPATH_LIBRARIES Путь к библиотекам (/joomla/libraries)
JPATH_PLUGINS Путь к плагинам (/joomla/plugins)
JPATH_ROOT Путь к фронтенду (/joomla)
JPATH_SITE Путь к сайту (http://joomla)
JPATH_THEMES Путь к шаблонам (/joomla/templates)

Начинающие Joomla программисты очень часто используют данные константы для формирования адресов ссылок забывая, что константы содержат абсолютный путь, а не URL.
Чтобы получить адрес сайта необходимо использовать JURI::root()