Supprimer le paramètre et l’ancre de pagination d’une url Avec du javascript et un peu de regex

, par jeanmarie

Soit une adresse https://www.brestculture.fr/-agenda-.html?debut_agenda_vignettes=30#pagination_agenda_vignettes dont on souhaite enlever les paramètres de pagination debut_agenda_vignettes=30 et #pagination_agenda_vignettes.

On commence par rentrer l’url de la page dans une variable nommée... url (#originalité)

  1. var url = window.location.href;

On supprime ensuite le paramètre définissant le début de la pagination (debut_agenda_vignettes=30) en prennant en compte le fait qu’il peut être précédé d’un ’ ?’ ou d’un ’&’ (#cleverguy)

  1. url = url.replace(/{\?,&}debut_([a-z0-9_]+)=([0-9]+)/,'');

Enfin, on enlève l’ancre de pagination.

  1. url = url.replace(/#pagination_([a-z0-9_]+)/,'');

Si on décortique

{\?,&} Le début de la chaine recherchée est un ? ou un #

debut_([a-z_]+) on cherche un truc du genre "debut_machin_truc_avec_des_tirets_bas_et_chiffres_ou_pas"

#pagination_([a-z0-9_]+) on cherche un truc du genre "#pagination_machin_truc_avec_des_tirets_bas_et_chiffres_ou_pas"

Et le tour est joué !

Note

la regex est valable peut importe le langage

Ressources

Tester les regex : https://regex101.com ou https://regexr.com
CheatSheet : https://www.cheatography.com/davechild/cheat-sheets/regular-expressions/ ou en doc joint