WikiDer > Вложенная цитата - Википедия
Эта статья требует внимания эксперта по предмету.Август 2007 г.) ( |
А вложенная цитата это цитата который заключен в другую цитату, образуя иерархия с несколькими уровнями. Сосредоточившись на определенной цитате, нужно интерпретировать ее в пределах ее объема. Вложенные цитаты могут использоваться в литературе (как во вложенном повествовании), речи и информатике (как в «мета» -задачах, которые относятся к другим утверждениям как струны). Вложенные цитаты могут сбивать с толку до тех пор, пока не будут тщательно оценены и пока каждый уровень цитаты не будет рассматриваться в перспективе.
В литературе
В языках, которые позволяют использовать вложенные кавычки и использовать знаки препинания в кавычках для обозначения прямой речи, иерархические подуровни кавычек обычно прерываются путем чередования первичных и вторичных кавычек. Для всестороннего анализа основных систем кавычек, используемых в основных системах письма, см. Кавычка.
В программировании на JavaScript
Вложенные цитаты часто становятся проблемой при использовании оценка ключевое слово[1]. В функция eval это функция, которая преобразует и интерпретирует строку как фактическую JavaScript код и запускает этот код. Если эта строка указана как буквальный, то код должен быть записан как сама цитата (и сбежал соответственно).
Например:
eval ("var a = 3; alert ();");
Этот код объявляет переменную а, которому присвоено значение 3, и пользователю открывается пустое окно с предупреждением.
Вложенные строки (уровень 2)
Предположим, нам нужно было сделать цитату внутри цитируемый интерпретируемый код. В JavaScript у вас может быть только один неэкранированный подуровень цитаты, который должен быть чередовать котировки верхнего уровня. Если символ котировки 2-го уровня совпадает с символом 1-го уровня, эти кавычки необходимо экранировать.[2]. Например:
alert («Мне не нужно убегать отсюда»); alert («И это не« требуется »здесь»); alert («Но теперь я сбегаю, или это не сработает»);
Вложенные строки (уровень 3 и выше)
Кроме того, (в отличие от литературного примера) вложенная цитата третьего уровня должна быть экранирована, чтобы не конфликтовать с либо разделители котировок первого или второго уровня. Это верно независимо от инкапсуляции чередующихся символов. Каждый уровень после третьего должен быть рекурсивно экранирован для всех уровней кавычек, в которых он содержится. Сюда входит сам escape-символ, обратная косая черта («»), которая экранируется сама по себе («»).
Для каждого подуровня, в котором содержится обратная косая черта, она должна быть экранирована для уровня выше, а затем все обратные косые черты, используемые для экранирования этой обратной косой черты, а также исходной обратной косой черты, должны быть экранированы, и так далее и так далее для каждый уровень, который поднимается. Это сделано во избежание двусмысленности и путаницы при побеге.
Вот несколько примеров, демонстрирующих некоторые из вышеперечисленных принципов:
документ.записывать(" Здравствуйте, это тело документа."
);документ.Writeln("");документ.записывать(" Новая строка в HTML-коде
действует просто как пробел, тогда как & lt; br & gt; начинает новую строку ".);документ.записывать(" n");оценка('eval ( "eval (" alert (\ "Теперь я \\\\\" ) ") ") ');
Обратите внимание, что количество обратных косых черт увеличивается от 0 до 1 до 3 до 7 до 15, указывая на то, что правило для последовательно вложенных символов.