Стырил регулярку - не пашет
Отсюда http://stackoverflow.com/questions/1...rs-while-exclu
и применил var url = 'url("http://example.com/captcha/captcha.jpeg?0.999999999")'; url.replace(/(?<=\?)(.*?)(?=\")/,Math.random()); /* Exception: invalid regexp group @Scratchpad/1:11 */ подскажите, пжслта, в чем тут проблема с шаблоном? Задача возникла когда я заменил img на style.backgroundImage сочтя что капчу и фоном в инпуте будет видно. В отличии от img - фон заключен в дебильное слово url, в котором еще свои собственные кавычки, в общем в инлайн-онклике не так просто конкатенировать, поэтому пошел искать вариант замены на регах. Задача такая - заменить все после ? до " на новое. Спасибо. |
Цитата:
|
Вложений: 1
Вот так (вложение).
Рега запахала без символа < перед = (лукбихайнд какой-то). Добавляю ? вручную. Дайте регу без лишних скаляров. В этот он-клик что-то такое вписывать жуткий гемор. В частности \" пришлось заменить на " хтмля же ля. Вот такой получился атттттрибут ->label('Введите код с картинки <span id="reload_captcha" style="color:#aaaab4;cursor:pointer;" onclick="{var el=document.getElementById(\'captcha\'); el.style.backgroundImage=el.style.backgroundImage.replace(/(?=\?)(.*?)(?=")/,\'?\'+Math.random()); el.value=null; el.focus();}">(обновить)</span>') |
Вообще эта капча просто от100^%$ла! Кусок гавна вокруг которого столько блин возни. Надо написать класс генерации, надо написать модель-рендер, надо все профтыкать, обновлять, надо проверять запрос и сессию, ебалайтен!
Может сейчас какие-то гуманные технологии появились? |
Да ну фигня по-моему. Оно того не стоит. Лучше картинкой.
|
Картинка не вписывается в классовый шаблон. Шаблон делает ровно 1 вложение - в контейнер пихает подпись и инпут (или любой тег).
Без шаблона капча вставляется из view через include по факту присутствия в сессии ключа captcha, и тогда проверка выпадает из общей валидации, капчу надо отдельно тогда проверять. Я подумал фоном будет видно, зато все в шаблоне и проверка системная. Ну что с этим лукбихайндом неправильно? |
Цитата:
|
Сахар в том что вся полевая тряхомудия рендерится одной строкой
<?php echo $this->fields;?> в случае необходимости можно рендерить по-отдельности <?php echo $this->fields->some_name;?> или по индексу <?php echo $this->fields[4];?> пока что такой необходимости не было. Инстансь $fields сделана из класса типа ArrayObject, но самопального, со своими всеми фичами, геттерами, сеттерами и прочей магией. В эту инстансь профтыкаются объекты класса FormField у которого своя магия, поэтому <?php echo $this->fields; ?> означает вызов __toString() в коллекции, а там форичем всю дату __toString() и готово. |
Цитата:
Ну ладно, а как на js заменить текст между ? и " |
Да хотя бы так:
url.replace(/\?(.*?)(?=\")/, '?' + Math.random()); |
Часовой пояс GMT +3, время: 13:37. |