如何替换/删除包含该子字符串的字符串的子字符串
how to replace/ remove a substring if a string contains that substing
我正在编写一个函数来检测当前 URL 是否包含某个子字符串。如果包含,那么我想删除它。
例如,
localhost/4000?ab=2&item=google
localhost/4000?ab=2&item=google123
localhost/4000?ab=2&item=google1233&haha=有用
我的想法如下....但有点卡在过程中
function changeUrl(item) {
var currentUrl = window.location.href;
if(currentUrl.includes('&item=') ){
.....
.....
return currentUrl
}else return;
}
我不会尝试将其作为字符串进行操作。 JavaSccript 有一个非常好的操作 URL 的工具,你不妨使用它:
str = 'http://localhost/4000?ab=2&item=google1233&haha=helpful';
url = new URL(str);
url.searchParams.delete('item'); // Idempotent call
result = url.toString();
在这种情况下,最好使用 URLSearchParams。
MDN DOCS
The URLSearchParams interface defines utility methods to work with the query string of a 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());
我正在编写一个函数来检测当前 URL 是否包含某个子字符串。如果包含,那么我想删除它。
例如,
localhost/4000?ab=2&item=google
localhost/4000?ab=2&item=google123
localhost/4000?ab=2&item=google1233&haha=有用
我的想法如下....但有点卡在过程中
function changeUrl(item) {
var currentUrl = window.location.href;
if(currentUrl.includes('&item=') ){
.....
.....
return currentUrl
}else return;
}
我不会尝试将其作为字符串进行操作。 JavaSccript 有一个非常好的操作 URL 的工具,你不妨使用它:
str = 'http://localhost/4000?ab=2&item=google1233&haha=helpful';
url = new URL(str);
url.searchParams.delete('item'); // Idempotent call
result = url.toString();
在这种情况下,最好使用 URLSearchParams。 MDN DOCS
The URLSearchParams interface defines utility methods to work with the query string of a 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());