如何在Javascript(json)中删除斜杠?任何JQuery插件?

时间:2010-10-25 01:22:23

标签: javascript jquery stripslashes

因此,当我将数据保存到数据库中时,PHP将在单引号或双引号上添加\。那很好。

但是,当使用json_encode()将数据传回客户端时;像麦当劳一样的文字作为麦当劳在数据库中存储,但一旦从PHP传递回js,它将编码为麦当劳

由于我使用的是jQuery,是否有任何插件可以轻松实现?或者我应该用什么函数来正确去除斜线?显然,如果有\\\\s之类的情况,该函数应该返回\s。 :)

对不起伙计们。我想我的问题太复杂了。我怎么做的更简单..

如果我有一个javascript变量:

var abc = "McDonald\'s";
var bcd = "I need a slash \\ ";
var cde = "save the double quote \"";

我该如何剥离\'?我应该使用什么样的正则表达式?

5 个答案:

答案 0 :(得分:8)

实际上highly discouraged to use this "magic quotes" feature插入斜杠。通常,您永远不希望以转义格式将数据存储在数据库中;你想在输出中进行转义和编码。

答案 1 :(得分:4)

我会处理主要问题 - magic_quotes已启用。

我会disable it并对您的数据库使用适当的转义方法。

然后你不必担心PHP 神奇地添加斜杠。

如果你在使用json_encode()时谈论斜杠,那就是出于某种原因。

在JavaScript中使用JSON parser,您将看不到它们(除非其他内容不正确地编码它们)。

答案 2 :(得分:1)

答案 3 :(得分:1)

试试这个

function stripslashes (str) {

  return (str + '').replace(/\\(.?)/g, function (s, n1) {
    switch (n1) {
    case '\\':
      return '\\';
    case '0':
      return '\u0000';
    case '':
      return '';
    default:
      return n1;
    }
  });
}

答案 4 :(得分:0)

在存储到数据库之前使用: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

}