Задача следующая. Мне нужно добавить гет параметры в зависимости от указанной строки. К примеру:
domain.com
что бы добавить гет параметр необходимо поставить "/" в конце строки и тогда склеивать с гет параметрами.
Но если пользователь указал ссылку вида:
domain.com/index.php
то сами понимаете сразу можно клеить без "/".
Если пользователь указал
domain.com/rise
то тогда будет domain.com/rise?get
Если
domain.com/rise/
то
domain.com/rise/?get
Помогите пожалуйста определить этот момент
Если я правильно понял вопрос, то будет как-то так. Слеш добавится только если 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}));
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники