Estoy escribiendo una función que detecta si la URL actual contiene una determinada subcadena. Si contiene, entonces me gustaría eliminarlo.
Por ejemplo,
localhost/4000?ab=2&item=google
localhost/4000?ab=2&item=google123
localhost/4000?ab=2&item=google1233&haha=útil
Mi idea está a continuación... pero un poco atascado en el proceso
function changeUrl(item) { var currentUrl = window.location.href; if(currentUrl.includes('&item=') ){ ..... ..... return currentUrl }else return; }No intentaría manipularlo como una cadena. JavaSccript tiene una herramienta perfectamente buena para manipular URL, y también podría usarla:
str = 'http://localhost/4000?ab=2&item=google1233&haha=helpful'; url = new URL(str); url.searchParams.delete('item'); // Idempotent call result = url.toString();En este caso, es mejor usar URLSearchParams. DOCUMENTOS DE MDN
La interfaz URLSearchParams define métodos de utilidad para trabajar con la cadena de consulta de una URL.
var url = new URL('https://example.com?foo=1&bar=2'); var params = new URLSearchParams(url.search); // you can see params by this way for (let p of params) { console.log(p); } // if you want to check if some params are exist console.log(params.has('foo')); // true // if you want to delete some params console.log(params.toString()); params.delete('foo'); console.log(params.toString());