NodeJS转义反斜杠

Dip*_*pak 5 javascript escaping backslash node.js

我在转义反斜杠时遇到了一些问题,下面是我尝试过的代码片段。问题是如何将带有转义斜杠的变量分配给另一个变量。

var s = 'domain\\username';
var options = {
    user : ''
};
options.user =  s;

console.log(s); // Output : domain\username - CORRECT
console.log(options); // Output : { user: 'domain\\username' } - WRONG
Run Code Online (Sandbox Code Playgroud)

为什么当我打印options对象时,两个斜杠都会出现?

我觉得我在这里做的事情真的/严重错误,这可能是基础知识。

更新:

当我使用这个对象时 options该值按原样传递(带有双斜杠),并且我将它与我的 SOAP 服务一起使用,并且由于无效的用户属性值而收到 401 错误。

但是,当我使用相同的用户值对 PHP 代码进行相同尝试时,它给出了正确的响应,在 PHP 中,我们也使用两个斜杠来转义该值。

msc*_*dex 3

当您console.log()使用对象时,首先使用 将其转换为字符串util.inspect()util.inspect()将字符串属性值格式化为文字(非常类似于JSON.stringify(s)),以更轻松/准确地显示字符串(可能包含控制字符,例如\n)。这样做时,它必须转义字符串中的某些字符,以便它们是有效的 Javascript 字符串,这就是为什么您会看到反斜杠在代码中被转义。