为什么在第一种情况下有反斜杠,而在第二种情况下有反斜杠?转义功能不应该更改任何内容吗?而且,即使最合理的做法是str.replace('\'', '\\\'')
,所以……先谢谢。
escape = function(str) {
str = str.replace('\\', '\\\\')
str = str.replace('\'', '\\\'')
str = str.replace('\"', '\\\"')
str = str.replace('\0', '')
str = str.replace('\r', '\\r')
str = str.replace('\n', '\\n')
return str;
}
var original = ("Maura';--");
var escaped = escape("Maura';--");
//var encoded = btoa(escaped);
console.log(original);
console.log(escaped);
//console.log(encoded);
输出:
'Maura';-'
'Maura \';-'
答案 0 :(得分:1)
在第一种情况下,您不会在字符串escape
上应用original
函数。在第二种情况下,其变化是由于escape
函数的第二行
str = str.replace('\'', '\\\'')
上面的行与
相同str = str.replace("'", '\\\'').
第二部分\\\'
将变为\'
。