【问题标题】:Use JavaScript to stripslashes ? possible使用 JavaScript 去除斜线?可能的
【发布时间】:2011-07-16 14:50:49
【问题描述】:

我正在使用 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 中做到这一点,但在 AJAX JavaScript 中却不知道。

有什么想法吗?

太棒了

【问题讨论】:

    标签: php ajax stripslashes


    【解决方案1】:

    旧问题的新答案:

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

    使用示例:

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

    输出:

    You're slashed /\../\
    

    【讨论】:

      【解决方案2】:

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

      var url = "http:\/\/www.divethegap.com\/update\/options\/padi-open-water\/"
      
      var res = url.replace(new RegExp("\\\\", "g"), "");
      

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

      【讨论】:

        【解决方案3】:

        已经有很多 php 核心功能的良好移植,包括这里的stripslasheshttp://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;
            }
          });
        }
        

        【讨论】:

          【解决方案4】:

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

          你应该要么

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

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

          【讨论】:

            【解决方案5】:

            你试过 string.replace 吗?

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

            【讨论】:

            • 有些字符串不能用简单的替换(如果字符串有 \ 或 double )
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-08-28
            相关资源
            最近更新 更多