Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2013, 12:55   #1
prizrak1390
-=PriZraK=-
Форумчанин
 
Аватар для prizrak1390
 
Регистрация: 12.12.2007
Сообщений: 399
Смущение Правильное экранирование строки

Здравствуйте!
Вот такой вот вопрос возник... К примеру имеется такой код:
Код:
$(somediv).html('<a href=\'#\' onclick=\'alert(\'ALARM\');\'>Some Link</a>');
Далее, при выполнении данного яваскрипта, возникнет ошибка, вызванная тем, что для Alert, нельзя передавать экранированные строки. Огнежук (firebug) ругается на то, что мол неизвестный символ "\". Подскажите, как можно экранировать кавычки, а то у меня много кода, где это пригодилось бы. Раньше удавалось выкручиваться при помощи this или document но сейчас случай не позволяет.
prizrak1390 вне форума Ответить с цитированием
Старый 08.01.2013, 17:24   #2
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Использовать двойные ковычки. Кэп не дремлет
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 08.01.2013, 19:12   #3
prizrak1390
-=PriZraK=-
Форумчанин
 
Аватар для prizrak1390
 
Регистрация: 12.12.2007
Сообщений: 399
По умолчанию

MyLastHit, не катит. Например:
Код:
<?
echo "[ТУТ ДРУГОЙ КОД]...$(somediv).html('<a href=\'#\' onclick=\'alert(\'ALARM\');\'>Some Link</a>');";
?>
И как быть в этом случае? Двойная кавычка - не катит. Экранированная - тоже.
Чтобы стало немного яснее, проблемный код - совершенно иной, но суть проблемы одна. Потому я и привел код проще, для наглядности возникшей проблемы.
Нужна одинарная кавычка.
prizrak1390 вне форума Ответить с цитированием
Старый 08.01.2013, 20:43   #4
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Да не бывает такого случая, чтобы именно она была нужна. Экранируйте двойные ковычки.
Код:
<?
echo "$(somediv).html(\"<a href='#' onclick=\"alert('ALARM');\">Some Link</a>\");";
?>
Я не знаю РНР совсем, но во всех Си-подобных языках есть форматор строк типа sprintf. Если не хотите просто конкатенировать, то используйте его.
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 08.01.2013 в 20:58.
MyLastHit вне форума Ответить с цитированием
Старый 09.01.2013, 00:15   #5
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

В перле есть независимые кавычки qq, q...
Наверняка в пыхе есть что-то подобное, раз он основан на перле...
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экранирование символов Lindemann66 C/C++ Базы данных 3 27.07.2011 13:29
Правильное удаление строки в БД с определённым id .. shytka PHP 36 12.07.2010 13:05
Экранирование кавычек в С Antoha Общие вопросы C/C++ 7 16.05.2010 21:02
Экранирование символов Roms PHP 2 15.05.2010 13:09
Правильное преобразование с строки в строку string. the_deer_one Общие вопросы C/C++ 10 06.04.2010 22:50