Wie entferne ich Abfragezeichenfolgenparameter in JavaScript?
P粉239164234
2023-08-20 18:46:10
<p>Gibt es eine bessere Möglichkeit, Parameter aus der Abfragezeichenfolge einer URL-Zeichenfolge zu entfernen als Standard-JavaScript mithilfe regulärer Ausdrücke? </p>
<p>Das ist es, was ich mir bisher ausgedacht habe, und es scheint in meinen Tests zu funktionieren, aber ich mag es nicht, das Parsen von Abfragezeichenfolgen neu zu erfinden! </p>
<pre class="brush:php;toolbar:false;">function RemoveParameterFromUrl(url, Parameter) {
if (typeof Parameter == "undefiniert" || Parameter == null || Parameter == "") throw new Error("Parameter ist erforderlich");
url = url.replace(new RegExp("b" + Parameter + "=[^&;]+[&;]?", "gi"), "");
// Entfernen Sie den restlichen Müll
url = url.replace(/[&;]$/, "");
Rückgabe-URL;
}</pre></p>
现代浏览器提供了
URLSearchParams
接口来处理搜索参数。该接口具有delete
方法,可以根据名称删除参数。看起来很危险,因为参数 'bar' 会匹配:
此外,如果
parameter
中包含任何在正则表达式中有特殊含义的字符,比如 '.',这个正则表达式就会失败。而且它不是全局正则表达式,所以只会删除一个参数的实例。我不会使用简单的正则表达式来做这个,我会解析参数并丢弃不需要的参数。