使用JavaScript来striplashes?可能

时间:2011-03-16 13:40:29

标签: php ajax stripslashes

我正在使用ajax来获取网址。问题是URL中有斜杠,当JQuery加载发生后,它将不会加载页面。

AJAX成功位:

success: function(data) {
 $('#OPTcontentpanel').load(data.OPTpermalink);

PHP

echo json_encode( array('OPTpermalink'=>$OPTpermalink,));

和响应

http:\/\/www.divethegap.com\/update\/options\/padi-open-water\/

所以需要去除斜线。我知道如何在PHP中完成它,而不是在 AJAX JavaScript中。

有什么想法吗?

非凡

5 个答案:

答案 0 :(得分:23)

旧问题的新答案:

String.prototype.stripSlashes = function(){
    return this.replace(/\\(.)/mg, "$1");
}

使用示例:

var str = "You\'re slashed \/\\..\/\\"; // Text from server
str = str.stripSlashes() ;

输出:

You're slashed /\../\

答案 1 :(得分:6)

这是一篇很老的帖子,但我认为我会添加我的答案,似乎比其他答案更有效:

var url = "http:\/\/www.divethegap.com\/update\/options\/padi-open-water\/"

var res = url.replace(new RegExp("\\\\", "g"), "");

这将替换所有出现的反斜杠字符。

答案 2 :(得分:5)

PHP的许多核心功能都有很好的端口,包括stripslashes在这里:http://phpjs.org/functions/stripslashes/

function stripslashes (str) {
  // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
  // +   improved by: Ates Goral (http://magnetiq.com)
  // +      fixed by: Mick@el
  // +   improved by: marrtins
  // +   bugfixed by: Onno Marsman
  // +   improved by: rezna
  // +   input by: Rick Waldron
  // +   reimplemented by: Brett Zamir (http://brett-zamir.me)
  // +   input by: Brant Messenger (http://www.brantmessenger.com/)
  // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
  // *     example 1: stripslashes('Kevin\'s code');
  // *     returns 1: "Kevin's code"
  // *     example 2: stripslashes('Kevin\\\'s code');
  // *     returns 2: "Kevin\'s code"
  return (str + '').replace(/\\(.?)/g, function (s, n1) {
    switch (n1) {
    case '\\':
      return '\\';
    case '0':
      return '\u0000';
    case '':
      return '';
    default:
      return n1;
    }
  });
}

答案 3 :(得分:3)

您正在发送JSON,但将其直接插入HTML元素。这不是明智的,可能会造成破碎的结果,也可能不是你想要做的事情。

你可能应该

  • 更改PHP脚本的输出以创建正确的HTML

  • 在JavaScript方面期望JSON(使用jQuery的dataType参数或简写$.json(),并解析

答案 4 :(得分:0)

你试过过string.replace吗?

success: function(data) {
 $('#OPTcontentpanel').load(data.OPTpermalink.replace("\\", ""));