@schurin
Люблю катать с гор, особенно на санках

Почему как js не всегда экранирует обратные слэши?

Добрый день!
Прощу помощи в вопросе экранирования спец символов на js
Пример строки которую хочу сериализовать в json: "PI.\\dev-pi2012\Demo.001;"
Сталкиваюсь с 2-мя случаями, почему собственно и возник вопрос
  1. Парсим xml, он содержит конфиг, искомая строка как и весь остальной конфиг укладываем в объект, затем сериализуем конфиг и снова куда-нибудь отправляем xml
    Разметка содержала строку "PI.\\dev-pi2012\Demo.001;" в объект конфига ложится она же, после сериализации получаю "PI.\\\\dev-pi2012\\Demo.001;"
    Тут ожидаемо JSON.stringify() экранирует слэши, дабы до получателя конфиг добрался в нужном виде

  2. Создаём объект(var config={...}) с конфигурацией, сразу прописываем строку "PI.\\dev-pi2012\Demo.001;", запускаем скрипт, сериализуем, на выходе сериализатора получаем "PI.\\dev-pi2012\Demo.001;"
    При получении данных и десериализации получаем строку вида "PI.\dev-pi2012Demo.001"


В чём разница, вбил я строку руками в код или распарсил из конфига?
  • Вопрос задан
  • 361 просмотр
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Потому что js как раз таки всегда экранирует обратные слеши, что обратно Вашему утверждению
Десериализатор получает на вход строку "PI.\\\\dev-pi2012\\Demo.001;" и экранирует слеши
Движок js получает на вход строку "PI.\\dev-pi2012\Demo.001;" и опять таки экранирует слеши
Почувствуйте разницу
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы