Bonjour j'ai crée une fonction seulement j’aimerais remplacer -- --- , ; : ! ? . par - et cela ne fonctionne pas. Une idées? Merci d'avance!!
function url(elem) {
//transform en lowercase
var str = elem.toLowerCase();
//del tout les caractére "blanc"
var strNoEsp = str.replace(/\s/g, '-');
var strUrl = strNoEsp.replace(/--|---|.|:|'|,|!|;/g, '-');
return strUrl;
}
Si elem = Le .htaccess et ses fonctionnalités
strNoEsp donne = Le-.htaccess-et-ses-fonctionnalités
strUrl donne = --------------------- (j'ai pas compter hein )
Heu je comprend pas pourquoi tu as besoin de plus vue que la fonction est la et qu'en dessous j'ai mis un exemple enfin bon voici le script en entier; a noter que j'ai trouvé finalement :
//fonction qui del les espaces et passe les titres en url
function url(elem) {
//transform en lowercase
var str = elem.toLowerCase();
//del tout les caractére "blanc"
var str = str.replace(/\s/g, '-');
var str = str.replace(/\.|:|'|,|!|;/g, '-');
var str = str.replace('---', '-');
var str = str.replace('--', '-');
//remplace les accents
var str = str.replace(/\é|è/g, 'e');
var str = str.replace(/\à/g, 'a');
var str = str.replace(/\ç/g, 'c');
for (var i = str.length-1; str.charAt([i]) == '-';) {
var str = str.substring('', str.length-1);
}
return str;
}
// objet modéle
var courObj = {
init : function (titre, pcent) {
this.titre = titre;
this.pcent = pcent;
}
};
//tableaux de données
var cours = [
'Le .htaccess et ses fonctionnalités',
'Apprenez à coder avec JavaScript',
'DOMXML - Flux RSS de news',
'Faire l\'inventaire de ses compétences',
'Gérez votre projet informatique facilement !',
'Découvrez le fonctionnement des algorithmes',
'Dynamisez vos sites web avec JavaScript !',
'Concevez votre site web avec PHP et MySQL',
'Maquettez votre site responsive avec Photoshop',
'Decouvrez les fondamentaux de l\'UX Design',
'Composez des interfaces utilisateurs en Material Design',
'Gérez un projet digital avec une méthodologie en cascade'
];
var percents = [
'100',
'100',
'100',
'100',
'100',
'100',
'29',
'11',
'0',
'0',
'0',
'0'
];
// création des variable pour la création du visuel
var grid = document.getElementById('grid');
//boucle de création
for (var i= 0, c=cours.length; i<c; i++) {
//objet
var cour = Object.create(courObj);
cour.init(cours[i], percents[i]);
//visuel init
var elem = document.createElement('div');
elem.className = 'media';
var elem2 = document.createElement('div');
elem2.className = 'media-body';
var elem3 = document.createElement('h4');
elem3.className = 'media-heading';
var elem4 = document.createElement('div');
elem4.className = 'progress';
var elem5 = document.createElement('div');
if (cour.pcent<50 && cour.pcent>1) {
elem5.className = 'progress-bar progress-bar-warning progress-bar-striped';
} else if (cour.pcent>50) {
elem5.className = 'progress-bar progress-bar-success progress-bar-striped';
} else {
elem5.className = 'progress-bar progress-bar-info progress-bar-striped';
}
elem5.role = 'progressbar';
elem5.setAttribute('aria-valuenow', cour.pcent);
elem5.setAttribute('aria-valuemin', '0');
elem5.setAttribute('aria-valuemax', '100');
var elem6 = document.createElement('a');
var urlTemp = url(cour.titre);
elem6.href = 'https://openclassrooms.com/courses/' + urlTemp;
elem6.setAttribute('target', '_blank');
elem6.style.color = 'white';
var elem7 = document.createElement('i');
elem7.className = 'fa fa-link';
elem7.style.paddingRight = '5px';
//ajoute le % à la fin du chiffre
cour.pcent += '%';
elem5.style.width = cour.pcent;
elem5.style.minWidth = '2em';
var elemText = document.createTextNode(cour.pcent);
var elemTitre = document.createTextNode(cour.titre);
//visuel placement
grid.appendChild(elem);
elem.appendChild(elem2);
elem2.appendChild(elem3);
elem2.appendChild(elem4);
elem4.appendChild(elem5);
elem3.appendChild(elem7);
elem3.appendChild(elem6);
elem6.appendChild(elemTitre);
elem5.appendChild(elemText);
}
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.