2013-11-26 20 views
1

我知道问题被问了很多次,我经历了所有的问题。但他们都没有帮助我的情况。我有一个对象文字,对于其中一个属性,我分配了一些具有反斜杠字符串的属性,但是在读取属性时,反斜杠被截断。如何在Javascript对象文字中转义反斜杠

我想在JSON.Stringify方法中使用这个对象字面值。根据JSON,不允许使用反斜杠。我们需要逃避它。有什么办法吗?

我不能修改数据添加额外的反斜杠,因为数据来自服务器。 '本地主机\ SQLSERVER'。之后,我需要更换它。

对象字面

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

这个问题似乎是脱离主题,因为我已经改变了数据层,以便它逃脱数据。因为问题不会帮助任何其他人。请关闭它 –

回答

0

它是一个字符串文字,所以如果你想使用\其中\是一个转义字符,因为它是那么你需要与其他\\\

'localhost\\sqlserver' 

演示逃吧:Fiddle

+0

我无法修改数据,数据来自服务器。 '本地主机\ SQLSERVER'。之后,我需要更换它。我知道这通过添加额外的反斜杠。我想从javascript中替换它。不是手动的 –

+0

@Ravi然后我不认为你可以做很多事情,因为字符串会逃脱'\'...尝试在浏览器控制台输入''localhost \ sqlserver'','\'已经被转义 –

1

使用\\转义\\

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

JSON.parse(JSON.stringify(data))