Я пытаюсь написать функцию, которая удалит аргумент запроса из URL в javascript. Я думаю, что у меня есть это с помощью регулярных выражений, но я не уверен, что я что-то пропустил. Кроме того, я не могу избавиться от ощущения, что, вероятно, был лучший способ сделать это, который не требовал, чтобы я возился с регулярными выражениями половину дня и рискнул позже узнать, что я не выбрал какой-то угол. дело во внимание.
remove_query_argument = function(url, arg){
var query_arg_regex;
// Remove occurences that come after '&' symbols and not the first one after the '?'
query_arg_regex = new RegExp('&' + arg + '=[^(?:&|$)]*', 'ig');
url = url.replace(query_arg_regex, '');
// remove the instance that the argument to remove is the first one
query_arg_regex = new RegExp('[?]' + arg + '[^(?:&|$)]*(&?)', 'i');
url = url.replace(query_arg_regex, function (match, capture) {
if( capture != '&' ){
return '';
}else{
return '?'
}
});
return url;
}
Кто-нибудь видит какие-либо проблемы с этим кодом или хотел бы предложить лучшую реализацию или способ решения этой проблемы?
Спасибо!