在javascript中只有一个反斜杠

问题描述 投票:-2回答:2

我知道反斜杠是js中的转义字符。要显示一个反斜杠,我需要写两个。

但我有快递服务器发送请求到数据库,在这里我只需要添加一个反斜杠。因此,如果过滤器包含两个反斜杠,则仅将其替换为一个反斜杠。怎么写呢?

     filter.replace("\\", String.fromCharCode(92)); //do two not one
     filter.replace("\\", "\"); //doesn't work, syntax error

示例“aa \ aa” - >“aa \ aa”

另一个想法? --- UPDATE ---发送到数据库的字符串包含两个反斜杠,但js GUI只显示一个(当然)。

javascript backslash
2个回答
2
投票

怎么写呢?

你自己说的:

要显示一个反斜杠,我需要写两个。

因此,如果你在字符串中有两个开头,那么你需要用一个(类型二)替换两个(类型四)。

var filter = "This string has a double slash in it: \\\\";
console.log(`The original string: ${filter}`);
filter = filter.replace("\\\\", "\\");
console.log(`The filtered string: ${filter}`);

0
投票

Quentin回答了你的问题,但另一种思考方式是,只要你对它做任何事情,写入sting的两个反斜杠将解析成一个反斜杠。

例如:

Console.Log("\");
//Returns Error

Console.Log("\\");
//Returns:  \

var i = "this is a backslash \\"
//i now contains only one backslash
Console.Log(i);
//Returns:  this is a backslash \

编辑:

既然你在查询之后澄清它被弄乱了,你可以尝试确保你已经将它分配给变量然后将它传递给查询。

i = "A string containing backslashes \\"
sql.Query(i);

编辑2:

哦,我刚刚得到它,你正试图逃避冒号'''已经在JS处理了。因此,如果查询不解析您的转义字符,那么\:应该完全有效。

© www.soinside.com 2019 - 2024. All rights reserved.