Как добавить Get параметр к строке в JavaScript?

472
30 марта 2017, 20:44

Задача следующая. Мне нужно добавить гет параметры в зависимости от указанной строки. К примеру:

domain.com

что бы добавить гет параметр необходимо поставить "/" в конце строки и тогда склеивать с гет параметрами.

Но если пользователь указал ссылку вида:

domain.com/index.php 

то сами понимаете сразу можно клеить без "/".

Если пользователь указал

domain.com/rise

то тогда будет domain.com/rise?get

Если

domain.com/rise/

то

domain.com/rise/?get

Помогите пожалуйста определить этот момент

Answer 1

Если я правильно понял вопрос, то будет как-то так. Слеш добавится только если url не заканчивается на .php или слеш.

function serializeGet(obj) { 
  var str = []; 
  for(var p in obj) 
    if (obj.hasOwnProperty(p)) { 
      str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); 
    } 
  return str.join("&"); 
} 
 
function addGet(url, get) { 
 
  if (typeof(get) === 'object') { 
      get = serializeGet(get); 
  } 
 
  if (url.match(/\?/)) { 
      return url + '&' + get; 
  } 
 
  if (!url.match(/\.\w{3,4}$/) && url.substr(-1, 1) !== '/') { 
    url += '/'; 
  } 
   
  return url + '?' + get; 
} 
 
console.log(addGet('ya.ru', 'a=b')); 
 
console.log(addGet('ya.ru/', 'a=b')); 
 
console.log(addGet('ya.ru/index.php', 'a=b')); 
 
console.log(addGet('ya.ru/index.php?text=12345', 'a=b')); 
 
console.log(addGet('ya.ru/index.php?text=12345', {a:"100%", b:"abc", d:128}));

READ ALSO
Загрузка файла с удаленного сервера

Загрузка файла с удаленного сервера

Добрый деньИспользую для загрузки файлов на сервер скрипт dropzone

306
Сумма двух столбцов со своим условием для каждого за один проход MySQL

Сумма двух столбцов со своим условием для каждого за один проход MySQL

Есть таблица, содержащая следующие поля: ID, FirstUserID, SecondUserID, FirstUserCount, SecondUserCountПри этом гарантируется, что FirstUserID <= SecondUserID

392