我知道反斜杠是js中的转义字符。要显示一个反斜杠,我需要写两个。
但是我有向服务器发送请求到数据库的快速服务器,在这里我只需要添加一个反斜杠。因此,如果过滤器包含两个反斜杠,请仅将其替换为一个。怎么写?
filter.replace("\\", String.fromCharCode(92)); //do two not one
filter.replace("\\", "\"); //doesn't work, syntax error
示例 “ aaaa \\ aaaa”->“ aaaa \ aaaa”
还有其他想法吗? --- UPADTE --- 发送到数据库的字符串包含两个反斜杠,但是js GUI仅显示一个(当然)。
答案 0 :(得分: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}`);
答案 1 :(得分:0)
Quentin回答了您的问题,但是另一种思考方式是,一旦您对字符串进行任何操作,写入到字符串中的两个反斜杠就会解析为单个反斜杠。
例如:
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中已经处理过的冒号':'。因此,如果查询没有解析您的转义字符,则仅\:
应该是完全有效的。