Использовать JavaScript для удаления полос?возможный - PullRequest
6 голосов
/ 16 марта 2011

Я использую 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.

Есть идеи?

Marvelous

Ответы [ 5 ]

23 голосов
/ 31 января 2013

Новый ответ на старый вопрос:

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

Пример использования:

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

вывод:

You're slashed /\../\
6 голосов
/ 02 апреля 2014

Это старый пост, но я подумал, что добавлю свой ответ, кажется более эффективным, чем некоторые другие ответы здесь:

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

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

Это заменит все символы обратной косой черты ничем.

5 голосов
/ 23 февраля 2013

Был хороший порт многих основных функций 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 голосов
/ 16 марта 2011

Вы отправляете JSON, но вставляете его непосредственно в элемент HTML. Это не разумно, может привести к ошибочным результатам, и, вероятно, не к тому, что вы хотите сделать в первую очередь.

Вы, вероятно, должны либо

  • изменить вывод PHP-скрипта для создания правильного HTML

  • ожидать JSON на стороне JavaScript (используя параметр dataType в jQuery или сокращение $.json() и анализировать

0 голосов
/ 16 марта 2011

Вы пробовали string.replace?

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