Вопрос про отображение обратного слеша \
Извиняюсь конечно за, наверное глупый вопрос, но почему когда:
// я просто вывожу строку с обратным слешем через alert alert("строка\строка"); // => "строкастрока" обратный слеш скрыт // но когда такая же строка формируется из ввода пользователя var str = prompt("Введите строку с обратным слешем"); // вводим "строка\строка" alert(str); // => "строка\строка" обратный слеш отображаетсяС вводом в input такая же история, т.е. при вводе пользователя что то экранирует обратный слеш? И правильно ли я понимаю что тогда внутри str на самом деле такая строка: "строка\\строка"? И как это можно увидеть? |
alert('\с' === 'с') alert('\n' === 'n') если escape-последовательность не найдена, остаются только следующие за слешем символы Цитата:
если пользователь введет «a\b», input.value.length будет 3 если ты запишешь str = 'a\\b', str.length тоже будет 3 при интерпретации строки, escape-последовательности заменяются на соответствующие символы |
Octane,
Я не понимаю, почему в одном случае \n не интерпретируется как перевод строки: var str = prompt(); // если пользователь введет "строка\nстрока" alert(str); // выведет "строка\nстрока"А в другом случае всё как следует интерпретируется: alert("стркоа\nстрока");Вопрос: может ли пользователь ввести escape последовательность которая будет работать? И почему она не работает? |
Ладно, наверно для практического вопроса данный раздел не подходит.
Теория такова: Знак обратной косой черты сам по себе используется в качестве escape-символа. Следовательно, невозможно ввести его непосредственно в скрипте. Если требуется ввести обратную косую черту, необходимо указать два знака вместе (\\). |
Часовой пояс GMT +3, время: 20:34. |