[英]Can someone explain me this behaviour?
为什么在第一种情况下有反斜杠而在第二种情况下有? 转义功能不应该改变任何东西,对吗? 即使它是最符合逻辑的方法也是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);
输出:
'毛拉';--'
'毛拉\\';--'
在第一种情况下,您不会在字符串original
上应用escape
函数。 在第二种情况下,它由于escape
函数的第二行而改变
str = str.replace('\'', '\\\'')
上面的行与
str = str.replace("'", '\\\'').
第二部分\\\\\\'
将变成\\'
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.