如何在Javascript对象文字中转义反斜杠

时间:2013-11-26 02:37:07

标签: javascript jquery regex json escaping

我知道问题很多次,我经历了所有的问题。但他们都没有帮助我的情况。我有一个对象字面值,对于其中一个属性,我指定了一些具有反斜杠字符的字符串,但在读取属性时,反斜杠会被截断。

我想在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'。之后我需要更换它。我知道添加额外的黑色标签会对我有所帮助。但我无法修改数据。

3 个答案:

答案 0 :(得分:2)

使用\\来逃避\

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

JSON.parse(JSON.stringify(数据))

答案 1 :(得分:1)

它是一个字符串文字,其中\是一个转义字符,因此如果您想要使用\,那么您需要使用另一个\转义\\ }}

'localhost\\sqlserver'

演示:Fiddle

答案 2 :(得分:0)

在将JSON作为字符串保存到db或使用REGEX

之前
// use this to avoid redirects when a user clicks "back" in their browser
window.location.replace('http://somewhereelse.com');

// use this to redirect, a back button call will trigger the redirection again
window.location.href = "http://somewhereelse.com";