Coding → Нежадные(ungreedy) регулярные выражения в Javascript

Привет.

Как вы, наверное, знаете, джаваскрипт не поддерживает никакие другие модификаторы шаблонов регулярных выражений, кроме «g»(глобальная подстановка), «i»(игнорировать регистр символов) и «m»(многострочная подстановка). В частности, нет такого полезного модификатора, как «Ungreedy». Но, как оказалось, его можно включить, но немного по-другому.

Например у нас есть задача: заменить все {$var} в строке «Some variable here: {$var} and there: {$var}» на «<a>var</a>». Если мы попробуем использовать регулярное выражение «/{\$(.*)}/g», то получим следующее: «Some variable here: <a>var} and there: {$var</a>», что явно нам не подходит. Это произошло потому, что по-умолчанию в JS регулярные выражения «жадные» — т.е. пытаются взять максимально подходящее под шаблон количество символов. В нашем случае под шаблон подошла вся строка от первого «{$» до последнего «}». Нам же нужно другое поведение.

Для этого используем хитрое сочетание специальных символов(подсмотренное в MDN), и наш шаблон обретает следующий вид: «/{\$(.+?)}/g». Теперь при замене мы получаем именно то, что нам требуется «Some variable here: <a>var</a> and there: <a>var</a>».

Удачи!

Coding → Простой способ синхронизации структуры и данных MySQL при работе с Mercurial

Привет. Недавно перевёл работу на Mercurial и встала задача организовать синхронизацию MySQL. Погуглив, ничего простого и надёжного не было найдено, поэтому пришлось самому решать эту задачу.

Продолжить чтение →

Coding → Раскрась машинку, %USERNAME%!

Снова привет.
Нашёл в дебрях компьютера одну забавную штуку, которую мы с Лёшей в студии делали для одного клиента. Она была задумана как главная «замануха» для посетителей, но клиент не принял, к сожалению. Выкладываю её вам на пощупать, посмотреть код и сказать мнение.

В процессе создания было прочитано несколько статей по теме цвета, сделан не один десяток экспериментов, и взорван мозг :). Основой всего стала png-маска машинки, под которой лежит див. Цвет дива как раз и настраивается бегунками. Все вычисления и формулы вы можете сами найти и почитать в dragger.js, может быть потом подробнее расскажу как там и что.

Буду рад услышать ваше мнение.

En taro Adun, Executor!

Coding → Кроссбраузерный placeholder

Добрый день.

Наконец-то дошли руки до написания первого тематического поста в блог. Им я начну цикл статей о jQuery плагинах, которые мы активно используем в студии. Итак, статья о такой полезной вещи как плэйсхолдер (placeholder).
Продолжить чтение →