Я пытаюсь написать функцию, которая удалит аргумент запроса из URL-адреса в javascript. Я думаю, что я использую регулярное выражение, но я не уверен, что я что-то пропустил. Кроме того, я не могу поколебать ощущение, что, вероятно, был лучший способ сделать это, что не включало меня во все время с регулярным выражением, и рискуя позже узнать, что я не взял какой-то угол с учетом случая.Удалить аргумент запроса из 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;
}
У кого-нибудь есть проблемы с этим кодом или вы хотели бы предложить лучшую реализацию или способ решения этой проблемы?
Спасибо!
это было бы лучше, если я думаю - http://codereview.stackexchange.com/ – emaillenin