Javascript:用双反斜杠替换反斜杠

时间:2013-01-31 11:09:39

标签: javascript escaping backslash

我目前正在解决标题中提到的问题,我在某种程度上找不到用双反斜杠正确替换反向的方法,这样我就可以正确地将字符串作为参数提供给web服务。 让我告诉你我的尝试。其中一些确实适用于其他人,但不适合我......我目前正在使用FF18.0.1进行测试

WSParameters.replace(/\\/g, "\\\\\\\\");
WSParameters.replace("\\", "\\\\\\\\");
WSParameters.replace(/\\/g, "\\\\");
WSParameters.replace(/\\/g, "\\");
WSParameters.replace(/\\/g, "\");
WSParameters.replace("\\", "\\\\");

提前多多感谢

编辑:我应该提到它以某种方式解析为JSON并使用firebug我看到源字符串中的反斜杠,但不是在JSON视图中。也许有另一种方式?但不知何故,它已经在替换反斜杠时失败了。

EDIT2:

if (noAction == false) {
    $.ajax({
        type: "POST",
        url: "WebService.asmx/" + webMethod,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: pAsync,
        data: WSParameters,
        success: function callFunction(result) { processPOSTResults(result, pType, pNot);},
        error: function (xhr, ajaxOptions, thrownError) {
            alert('Error while communicating with WebAdmin web service. - ' + xhr.status + " " + thrownError);
        }
    });
}

1 个答案:

答案 0 :(得分:6)

WSParameters.replace(/\\/g, "\\\\");应该这样做,并且在FF18中也是如此。请注意,如果您使用JSON.stringify,则会自动完成。还要注意许多控制台输出(Firebug等)用引号包围字符串内容,但不要逃避它们。