| 6 | * @return {string} cleaned url |
| 7 | */ |
| 8 | export function paramsClean(url, param) { |
| 9 | const search = (url.split('?') || [ , ])[1] // eslint-disable-line |
| 10 | if (!search || search.indexOf(param) === -1) { |
| 11 | return url |
| 12 | } |
| 13 | // remove all utm params from URL search |
| 14 | const regex = new RegExp(`(\\&|\\?)${param}([_A-Za-z0-9"+=.\\/\\-@%]+)`, 'g') |
| 15 | const cleanSearch = `?${search}`.replace(regex, '').replace(/^&/, '?') |
| 16 | // replace search params with clean params |
| 17 | const cleanURL = url.replace(`?${search}`, cleanSearch) |
| 18 | // use browser history API to clean the params |
| 19 | return cleanURL |
| 20 | } |