我知道反斜杠是js中的转义字符。要显示一个反斜杠,我需要写两个。
但我有快递服务器发送请求到数据库,在这里我只需要添加一个反斜杠。因此,如果过滤器包含两个反斜杠,则仅将其替换为一个反斜杠。怎么写呢?
filter.replace("\\", String.fromCharCode(92)); //do two not one
filter.replace("\\", "\"); //doesn't work, syntax error
示例“aa \ aa” - >“aa \ aa”
另一个想法? --- UPDATE ---发送到数据库的字符串包含两个反斜杠,但js GUI只显示一个(当然)。
怎么写呢?
你自己说的:
要显示一个反斜杠,我需要写两个。
因此,如果你在字符串中有两个开头,那么你需要用一个(类型二)替换两个(类型四)。
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}`);
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处理了。因此,如果查询不解析您的转义字符,那么\:
应该完全有效。