2013-11-26 2 views
1

Я знаю, что вопрос задан много раз, я прошел через все вопросы. но ни один из них не помогает моей ситуации. У меня есть объектный литерал, для одного из свойств я назначаю некоторую строку, которая имеет обратную косую черту, но при чтении свойства обратная косая черта становится усеченной.Как избежать обратного слэша в объекте Javascript literal

Я хочу использовать этот объект буквально в методе JSON.Stringify. в соответствии с JSON, обратная косая черта не допускается. нам нужно избежать этого. там в любом случае ?

Я не могу изменить данные, чтобы добавить дополнительную обратную косую черту, поскольку данные поступают с сервера. 'Локальный \ SQLServer'. после этого мне нужно его заменить.

Object буквальное

var data={ 
    s:'localhost\sqlserver' 
} 


function replaceToUpper(value) { 
    return value.replace(/\\n/g, "\\n") 
             .replace(/\\'/g, "\\'") 
             .replace(/\\&/g, "\\&") 
             .replace(/\\r/g, "\\r") 
             .replace(/\\t/g, "\\t") 
             .replace(/\\b/g, "\\b") 
             .replace(/\\f/g, "\\f"); 
} 

// чтение данных

alert(replaceToUpper(data.s)); 

попытка 2:

var values =JSON.stringify(data); // here that backslash getting trucunated 

что же я здесь отсутствует. проверьте скрипт Object Literal with Backslash

Я не могу изменить данные, чтобы добавить дополнительную обратную косую черту, поскольку данные поступают с сервера. 'Локальный \ SQLServer'. после этого мне нужно его заменить. Я знаю, что добавление лишних чернокнижников мне поможет. но я не могу изменить данные.

+0

Я просто концентрирую обратную косую черту. я не знаю, почему он не работает. –

+0

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

ответ

0

это строка символов, где \ является маскирующим, так что если вы хотите использовать \, как это, то вам нужно, чтобы избежать его другим \ как \\

'localhost\\sqlserver' 

Demo: Fiddle

+0

Я не могу изменить данные, данные поступают с сервера. 'Локальный \ SQLServer'. после этого мне нужно его заменить. Я знаю это, добавляя дополнительную обратную косую черту. Я хочу заменить его на javascript. а не вручную –

+0

@Ravi, тогда я не думаю, что вы можете многое сделать, поскольку строка сбежит '\' ... попытайтесь ввести '' localhost \ sqlserver'' в консоль браузера '' 'уже экранирована –

1

использование \\ для выхода \

данные var = { s: 'localhost \\ sqlserver'}

JSON.parse (JSON.stringify (data))

Смежные вопросы