Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Вложенная цитата является цитатой , который инкапсулирован в других цитатах, образуя иерархию с несколькими уровнями. Сосредоточившись на определенной цитате, нужно интерпретировать ее в пределах ее объема. Вложенные цитаты могут использоваться в литературе (как во вложенном повествовании), речи и информатике (как в «мета» -условиях, которые ссылаются на другие утверждения как на строки ). Вложенные цитаты могут сбивать с толку до тех пор, пока они не будут тщательно оценены и пока каждый уровень цитаты не будет рассматриваться в перспективе.

В литературе [ править ]

В языках, которые позволяют использовать вложенные кавычки и использовать знаки препинания в кавычках для обозначения прямой речи, иерархические подуровни кавычек обычно прерываются путем чередования первичных и вторичных кавычек. Для всестороннего анализа основных систем кавычек, используемых в основных системах письма, см. Кавычки .

В программировании на JavaScript [ править ]

Вложенные кавычки часто становятся проблемой при использовании ключевого слова eval . [1] Функция eval - это функция, которая преобразует и интерпретирует строку как реальный код JavaScript и запускает этот код. Если эта строка указана как литерал , тогда код должен быть записан как сама кавычка (и соответственно экранирован ).

Например:

eval ("var a = 3; alert ();");

Этот код объявляет переменную a , которой присваивается значение 3 , и пользователю открывается пустое окно с предупреждением.

Вложенные строки (уровень 2) [ править ]

Предположим, нам нужно сделать цитату внутри цитируемого интерпретируемого кода. В JavaScript у вас может быть только один неэкранированный подуровень цитаты, который должен быть альтернативой цитате верхнего уровня. Если символ котировки 2-го уровня совпадает с символом 1-го уровня, эти кавычки должны быть экранированы. [2] Например:

alert («Мне не нужно убегать отсюда»);alert ('И это «не обязательно» здесь »);alert ('Но теперь я сделаю или это не сработает');

Вложенные строки (уровень 3 и выше) [ править ]

Кроме того, ( в отличие от примера литературы), вложенная цитата третьего уровня должны быть экранированы, чтобы не противоречить ни на первого или второго уровня цитаты разделителей. Это верно независимо от инкапсуляции чередующихся символов. Каждый уровень после третьего уровня должен быть рекурсивно экранирован для всех уровней кавычек, в которых он содержится. Сюда входит сам escape-символ, обратная косая черта («\»), которая экранируется сама по себе («\\»).

Для каждого подуровня, в котором содержится обратная косая черта, она должна быть экранирована для уровня выше, а затем все обратные косые черты, используемые для экранирования этой обратной косой черты, а также исходной обратной косой черты, должны быть экранированы, и т. Д. И т. Д. Для каждого уровня что вознесено. Это сделано для того, чтобы избежать двусмысленности и путаницы при побеге.

Вот несколько примеров, демонстрирующих некоторые из вышеперечисленных принципов:

документ . write ( "<html> <head> </head> <body> <p> Здравствуйте, это тело документа." ); документ . Writeln ( "</p>" ); документ . write ( "<p> Новая строка в HTML-коде действует просто как пробел, тогда как & lt; br & gt; запускает новую строку." ); документ . написать ( "</p> </body> </html> \ n" );eval ( 'eval (\ "eval (\\\" alert (\\\\\\\ "Теперь я \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\} \ ") \\\") \ ") ' );

Обратите внимание, что количество обратных косых черт увеличивается от 0 до 1 до 3 до 7 до 15, указывая на правило для последовательно вложенных символов.

См. Также [ править ]

Ссылки [ править ]