8

我正在使用 ajax 来获取 URL。问题是 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 中做到这一点,但不知道AJAXJavaScript。

有任何想法吗?

奇妙

4

5 回答 5

27

旧问题的新答案:

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

使用示例:

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

输出:

You're slashed /\../\
于 2013-01-31T10:04:18.127 回答
7

这是一篇旧帖子,但我想我会添加我的答案,似乎比这里的其他一些答案更有效:

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

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

这将用任何内容替换所有出现的反斜杠字符。

于 2014-04-02T02:51:13.657 回答
6

许多 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;
    }
  });
}
于 2013-02-23T00:23:05.997 回答
3

您正在发送 JSON,但将其直接插入 HTML 元素。这是不明智的,可能会产生破坏性的结果,而且可能不是您一开始就想做的事情。

你可能应该要么

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

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

于 2011-03-16T13:43:07.423 回答
0

你试过string.replace吗?

success: function(data) {
 $('#OPTcontentpanel').load(data.OPTpermalink.replace("\\", ""));
于 2011-03-16T13:44:13.883 回答