В данной статье я решил более подробно рассмотреть управляющие последовательности при работе со строками в языке Jscript. Хотя стоит упомянуть, что данный материал относится и к языку JavaScript. И так, что же такое управляющая последовательность?
Управляющая последовательность это, в простом варианте, один, или несколько специальных символов (например, ESC - последовательность), которые нельзя ввести с клавиатуры стандартным путём. Всем, кто работает с пакетом Microsoft Office, знакома ситуация, кода в текст надо вставить некий специальный символ, например, символ копирайта. Однако, в языке программирования, таких символов больше, так, если нам надо в Word использовать символ табуляции, то мы просто нажимаем на клавишу TAB, что бы сделать аналогичные действия в Jscript, приходится использовать управляющую конструкцию \t. Данную тему я немного затронул в статье Объявление переменных, и теперь постараюсь глубже всё рассмотреть.
И так, давайте начнём с самого простого, напишем сценарий, который будет выводить строку Hello World:
//******************* //hello.js //******************* var hello="Hello World"; //Выведет Hello World WScript.Echo(hello); |
Тут мы объявили переменную hello с помощью ключевого слова var языка JScript и сразу же присвоили ей строковое значение "Hello World", мы могли поступить и по-другому:
var hello; hello="Hello World"; |
Первый вариант более экономный.
Хорошо, теперь давайте изменить вид нашей строки:
//******************* //hello.js //******************* var hello="Hello World"; WScript.Echo(hello); //Выведет Hello World hello = "H\ello\ Worl\d"; WScript.Echo(hello); //Выведет Hello World |
Как не странно, во втором случае тоже будет выведена строка Hello World, символ обратного слэша (\) имеет особое значение, именно он и позволяет создавать управляющие последовательности, всё, что идет после него, интерпретатор языка будет принимать как управляющую последовательность, ЕСЛИ ОНА ПРИСУТСТВУЕТ!!! Для понимания, взгляните на следующий пример:
//******************* //hello_time.js //******************* var hello="Hello time"; WScript.Echo(hello); //Выведет Hello time hello = "Hello \time"; WScript.Echo(hello); //Выведет Hello ime |
Тут, во втором случае вместо "Hello time" выводит "Hello ime", так как за обратным слэшем следует символ t, а, как я показал выше, \t подразумевает табуляцию. Теперь давайте посмотрим на список управляющий последовательностей и их описания:
\0 - Символ NUL (\u0000), весь текст, что следует после него, не будет отображаться.
\b – Забой, эквивалент клавиши Backspace (\u0008)
\t – Как уже упоминалось, горизонтальная табуляция (\u0009)
\n – Перевод строки (\u000A)
\f - Перевод страницы (\u000C)
\r - Возврат каретки (\u000D)
\" - Двойная кавычка (\u0022)
\' - Одинарная кавычка (\u0027)
\\ - Обратный слэш (\u005C)
\xХХ – Тут XX – две шестнадцатеричные цифры, как это работает, я покажу ниже
\uХХХХ – Юникод символ, который задан четырьмя шестнадцатеричными цифрами XXXX
Тут стоит обратить внимание на \xХХ и \uХХХХ, если вы заметили, то рядом с ESC-символами (\n, \t,…) в скобках прописан их эквивалент в формате Юникод. Давайте рассмотрим такой пример работы с управляющими последовательностями:
//******************* //symbol.js //Управляющие последовательности - пример //******************* var str1="Первая строка", str2 = "Вторая строка"; // Все три конструкции выведут аналогичный результат WScript.Echo(str1 + "\n" + str2); WScript.Echo(str1 + "\u000A" + str2); WScript.Echo(str1 + "\x0A" + str2); //************************************************** //Выводим копирайт, четверть и греческую буква мю WScript.Echo ("\u00A9"); //Аналогичном \xA9 WScript.Echo ("\u00BC"); //Аналогичном \xBC WScript.Echo ("\u03BC"); |
Можете поэкспериментировать с управляющими конструкциями, вы, можете открыть редактор Word и при выборе вставки символа просто просмотреть его код, правда стоит помнить, что не все символы будут отображаться.
Спасибо за внимание. Автор блога Владимир Баталий