Existe-t-il un meilleur moyen de supprimer des paramètres de la chaîne de requête d'une chaîne d'URL que le JavaScript standard utilisant des expressions régulières ?
C'est ce que j'ai trouvé jusqu'à présent, et cela semble fonctionner dans mes tests, mais je n'aime pas réinventer l'analyse des chaînes de requête !
function RemoveParameterFromUrl(url, paramètre) { if (typeof paramètre == "non défini" || paramètre == null || paramètre == "") lancer une nouvelle erreur ("le paramètre est requis"); url = url.replace(new RegExp("b" + paramètre + "=[^&;]+[&;]?", "gi"), ""); // Supprime tous les déchets restants url = url.replace(/[&;]$/, ""); URL de retour ; }
Les
Les navigateurs modernesfournissent l'interface
URLSearchParams
URLSearchParams
接口来处理搜索参数。该接口具有delete
pour gérer les paramètres de recherche. Cette interface possède une méthodedelete
, qui peut supprimer les paramètres par nom.Cela semble dangereux car l'argument « bar » correspondrait :
De plus, si
parameter
contient des caractères ayant une signification particulière dans les expressions régulières, tels que « . », cette expression régulière échouera. Et ce n'est pas une expression régulière globale, donc une seule instance du paramètre sera supprimée.Je n'utiliserais pas une simple expression régulière pour faire cela, j'analyserais les paramètres et supprimerais ceux dont je n'ai pas besoin.