javascript

时间:2019-04-25 14:08:53

标签: javascript backslash

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

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

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

示例         “ aaaa \\ aaaa”->“ aaaa \ aaaa”

还有其他想法吗? --- UPADTE --- 发送到数据库的字符串包含两个反斜杠,但是js GUI仅显示一个(当然)。

2 个答案:

答案 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中已经处理过的冒号':'。因此,如果查询没有解析您的转义字符,则仅\:应该是完全有效的。