Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.10.2014, 06:24
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Стырил регулярку - не пашет
Отсюда 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, в котором еще свои собственные кавычки, в общем в инлайн-онклике не так просто конкатенировать, поэтому пошел искать вариант замены на регах.

Задача такая - заменить все после ? до " на новое.

Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 13.10.2014, 08:05
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от kostyanet
капчу и фоном в инпуте будет видно
И как это выглядит?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 13.10.2014, 08:48
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Вот так (вложение).

Рега запахала без символа < перед = (лукбихайнд какой-то). Добавляю ? вручную. Дайте регу без лишних скаляров. В этот он-клик что-то такое вписывать жуткий гемор. В частности \" пришлось заменить на &quot; хтмля же ля.

Вот такой получился атттттрибут
->label('Введите код с картинки&nbsp;<span id="reload_captcha" style="color:#aaaab4;cursor:pointer;" 
			onclick="{var el=document.getElementById(\'captcha\');
			el.style.backgroundImage=el.style.backgroundImage.replace(/(?=\?)(.*?)(?=&quot)/,\'?\'+Math.random());
			el.value=null; el.focus();}">(обновить)</span>')
Изображения:
Тип файла: jpg capback.jpg (13.4 Кб, 7 просмотров)
Ответить с цитированием
  #4 (permalink)  
Старый 13.10.2014, 08:54
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Вообще эта капча просто от100^%$ла! Кусок гавна вокруг которого столько блин возни. Надо написать класс генерации, надо написать модель-рендер, надо все профтыкать, обновлять, надо проверять запрос и сессию, ебалайтен!

Может сейчас какие-то гуманные технологии появились?
Ответить с цитированием
  #5 (permalink)  
Старый 13.10.2014, 08:54
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Да ну фигня по-моему. Оно того не стоит. Лучше картинкой.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 13.10.2014, 09:01
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Картинка не вписывается в классовый шаблон. Шаблон делает ровно 1 вложение - в контейнер пихает подпись и инпут (или любой тег).

Без шаблона капча вставляется из view через include по факту присутствия в сессии ключа captcha, и тогда проверка выпадает из общей валидации, капчу надо отдельно тогда проверять. Я подумал фоном будет видно, зато все в шаблоне и проверка системная.

Ну что с этим лукбихайндом неправильно?
Ответить с цитированием
  #7 (permalink)  
Старый 13.10.2014, 09:10
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от kostyanet
Ну что с этим лукбихайндом неправильно?
А его вообще нет в js регулярках.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 13.10.2014, 09:11
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сахар в том что вся полевая тряхомудия рендерится одной строкой

<?php echo $this->fields;?>


в случае необходимости можно рендерить по-отдельности

<?php echo $this->fields->some_name;?>

или по индексу

<?php echo $this->fields[4];?>

пока что такой необходимости не было.

Инстансь $fields сделана из класса типа ArrayObject, но самопального, со своими всеми фичами, геттерами, сеттерами и прочей магией. В эту инстансь профтыкаются объекты класса FormField у которого своя магия, поэтому <?php echo $this->fields; ?> означает вызов __toString() в коллекции, а там форичем всю дату __toString() и готово.
Ответить с цитированием
  #9 (permalink)  
Старый 13.10.2014, 09:13
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от danik.js
А его вообще нет в js регулярках.
Точно, там же сишный контекст. А я думал езыг регулярок универсальный.

Ну ладно, а как на js заменить текст между ? и "
Ответить с цитированием
  #10 (permalink)  
Старый 13.10.2014, 09:33
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Да хотя бы так:
url.replace(/\?(.*?)(?=\")/, '?' + Math.random());
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
че не пашет то ! mara100 Ваши сайты и скрипты 1 24.08.2013 10:06
Помогите сделать регулярку для HTML шаблона zeraid Общие вопросы Javascript 1 25.12.2011 15:28
Подскажите регулярку LRCenter Общие вопросы Javascript 5 22.06.2011 15:04
Скрипт пашет только в ie. hacker_007 Общие вопросы Javascript 10 03.04.2011 03:28
window.event.srcElement не пашет? Влад Firefox/Mozilla 4 07.08.2009 11:27