如何在Javascript中删除斜线(json)?任何JQuery插件?
因此,当我将数据保存到数据库时,PHP将在单引号或双引号上添加\。那很好。如何在Javascript中删除斜线(json)?任何JQuery插件?
但是,当数据传回到客户端使用json_encode();像麦当劳这样的文本在数据库中存储为麦当劳,但是一旦从PHP返回到js,它将被编码为麦当劳
因为我使用jQuery,有没有任何插件可以轻松做到这一点?或者我应该用什么函数来正确地去掉斜杠?显然,如果有像\\\\s
这样的情况,函数应该返回\s
。 :)
对不起。我想我让我的问题太复杂了。怎么样我使其更简单...
如果我有一个JavaScript变量:
var abc = "McDonald\'s";
var bcd = "I need a slash \\ ";
var cde = "save the double quote \"";
我怎么能剥去\”?我应该使用哪种正则表达式?
使用前:http://au.php.net/manual/en/function.mysql-real-escape-string.php存储到数据库之前。
写到任何用户界面之前,使用像这样的自定义函数:
function unescape($string)
{
$search = array("\\x00", "\\n", "\\r", "\\\x1a");
$replace = array("\x00","\n", "\r", "\x1a");
$retString = str_replace($search, $replace, $string);
$search = array("\'", '\\'.'"');
$replace = array( "'", '"',);
$retString = str_replace($search, $replace, $retString);
$search = array("\\\\");
$replace = array("\\");
$retString = str_replace($search, $replace, $retString);
return $retString
}
它实际上是highly discouraged to use this "magic quotes" feature插入斜杠。一般来说,你永远不想以转义的格式将数据存储在数据库中;你想在输出中进行转义和编码。
我会照顾主要问题 - magic_quotes
已启用。
我会disable it并在您的数据库中使用正确的转义方法。
然后您不必担心PHP 奇迹般地添加斜线。
如果你在谈论使用json_encode()
时的斜线,它会这样做。
在JavaScript中使用JSON parser,您将看不到它们(除非其他内容不正确地编码它们)。
对于JSON部分,我正好需要弄清楚。我不想在提取数据时出现问题。 – murvinlai 2010-10-25 07:54:33
试试这个太
function stripslashes (str) {
return (str + '').replace(/\\(.?)/g, function (s, n1) {
switch (n1) {
case '\\':
return '\\';
case '0':
return '\u0000';
case '':
return '';
default:
return n1;
}
});
}
我有点担心了很多这里的答案。我的PHP安全知识有点过时,所以我没有真正有资格在这里给出一个好的答案,但是如果你关闭了魔术引号,用一个更好的**转义系统替换它是非常重要的。你的目标应该是防止SQL注入和跨站脚本攻击。我通常会使用'mysql_real_escape_string($ user_input)'进入数据库,'htmlentities($ db_output)'使用客户端 - 但这可能不会100%安全。希望有人能提供更好的建议。 – Andrew 2010-10-25 02:09:31
你在JS中使用什么来解析JSON?无论你使用何种方法,如果它正确地生成了('json_encode'将会这样做)。 – staticsan 2010-10-25 02:41:58
@Andrew该建议仍然健全,但通常你想用'htmlspecialchars()'编码到一个视图。这就够了。 – alex 2010-10-25 08:46:27