繁体   English   中英

有人可以向我解释这种行为吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM