我正在尝试从文本输入中清除引号。现在我的代码是:
string = string.replace(/'/g, '\'');
string = string.replace(/"/g, '\"');
我的输出已经替换了所有双引号,但单引号仍然存在。我对我的正则表达式相当自信,之前没有使用替换函数的问题。 mySQLdb是否有可能弄乱这个?我发布它然后几乎立即后。这看起来像是一个简单的问题,但它确实让我感到难过
答案 0 :(得分:3)
您的替换是空操作,因为反斜杠由字符串文字本身消耗,并且不存在于实际字符串值中。
而是转义反斜杠以在字符串中真正得到一个:
string = string.replace(/'/g, "\\'");
string = string.replace(/"/g, '\\"');
您当然可以在一次操作中执行此操作:
string = string.replace(/(['"])/g, "\\$1");