Заменить параметры GET в URL на основе позиции (регулярное выражение) - PullRequest
0 голосов
/ 12 октября 2019

Я хочу удалить параметры GET для URL,

URL-адреса в этом формате:

https://url.com?remove_parameter={VALUE}

https://url.com?keep_parameter={VALUE}&remove_parameter={VALUE}

что я ищу:

https://url.com

https://url.com?keep_parameter={VALUE}

Я искал выражения регулярных выражений, но не могу найти правильный ответ.

Есть ли способ использовать регулярное выражение в функции замены javascript для форматирования этих URL?

Ответы [ 2 ]

2 голосов
/ 13 октября 2019

Вы можете безопасно сделать это без использования регулярных выражений.

var url = new URL("https://url.com?keep_parameter={VALUE}&remove_parameter={VALUE}");

console.log(url.origin);

console.log("Before removal:");
url.searchParams.forEach(function(value, key){ console.log(key, value); });

url.searchParams.delete('remove_parameter');

console.log("After removal:");
url.searchParams.forEach(function(value, key){ console.log(key, value); });

console.log("Rebuild:");
console.log(url.toString());

Ссылка: https://developer.mozilla.org/en-US/docs/Web/API/URL

2 голосов
/ 13 октября 2019

Может быть,

[&?]remove_parameter={[^}]*}

, замененный пустой строкой, просто будет работать здесь нормально.

Демо

const regex = /[&?]remove_parameter={[^}]*}/gm;
const str = `https://url.com?remove_parameter={VALUE}
https://url.com?keep_parameter={VALUE}&remove_parameter={VALUE}
http://url.com?remove_parameter={VALUE}
https://www.url.com?keep_parameter={VALUE}&remove_parameter={VALUE}`;
const subst = ``;
const result = str.replace(regex, subst);

console.log(result);

Схема RegEx

jex.im визуализирует регулярные выражения:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...