Assainir une URL avec JavaScript
Concept et utilisation
La fonction urlSanitize() permet d'assainir une URL et ses paramètres de requêtes.
Fonction
urlSanitize()Retourne une URL après l'avoir nettoyée selon les options spécifiées.
- Syntaxe
urlSanitize(options);- Paramètre
options(Object)Le paramètre
optionsde la fonctionurlSanitize()définit les éléments de l'URL à nettoyer.- Propriétés
url(String)La propriété
urldu paramètreoptionsdéfinit l'URL à assainir.
Si cette propriété est omise, l'URL de la page affichée sera utilisée par défaut.queriesWhitelist(Array)La propriété
queriesWhitelistdu paramètreoptionsdéfinit la liste des paramètres de requêtes autorisés dans l'URL.
Si cette propriété est omise, tous les paramètres de requête seront conservés.keepHash(Boolean)La propriété
keepHashdu paramètreoptionsdéfinit avec une valeur booléenne si le hash de l'URL doit être conservé ou non.
Si cette propriété est omise, le hash ne sera pas conservé.
Exemple de nettoyage d'URL
var options = {
url: 'https://www.domain.ext/?cle_1=valeur_1&cle_2=valeur_2#hash',
queriesWhitelist: [ 'cle_1' ],
keepHash: false
};
urlSanitize(options);
// renvoie : 'https://www.domain.ext/?cle_1=valeur_1'Code source de la fonction
function urlSanitize(o) {
o = o || {};
var a = o.queriesWhitelist || [],
p = (o.url || window.location.href).split(/\#/),
h = (o.keepHash && p[1]) ? '#' + p[1] : '',
q = '';
p = p[0].split(/\?/);
if (p[1]) {
var r = p[1].split(/\&/);
if (typeof r[0] === 'string') {
for (var i = 0, j = r.length; i < j; i++) {
var s = r[i].split(/\=/);
for (var k = 0, l = a.length; k < l; k++) {
if (s[0] === a[k]) {
q += ((q !== '') ? '&' : '?') + s[0] + '=' + s[1];
}
}
}
}
}
return p[0] + q + h;
}Dernière mise à jour le .
