Script replace pour gérer les é, è (et autres) vers des lettres "classiques"

2 participants

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Script replace pour gérer les é, è (et autres) vers des lettres "classiques"

Message par Blueberry Hills Mer 23 Nov 2022 - 12:12

Détails techniques


Version du forum : phpBB3
Poste occupé : Administrateur
Navigateur(s) concerné(s) : Mozilla Firefox, Google Chrome, Internet Explorer, Opera, Safari
Capture d'écran du problème :
Voir l'image:

Personnes concernées par le problème : Tous les utilisateurs connectés
Problème apparu depuis : le 22 novembre 2022
Lien du forum : https://bic-test.forumactif.com

Description du problème

Bonjour !

Je viens demander de l'aide ce jour car je note qu'après l'import de ma font-face, celle-ci ne gère pas les caractères spéciaux "français" (globalement les é, è, à, ô etc). Sachant très bien que c'est une possibilité, j'ai cherché, étant donné qu'il s'agit de mon secondarytitle (donc changement des forumlink vers des secondarytitle lors du clic sur les sous forums) j'ai cherché à remplacer, non pas manuellement, mais avec un script ces caractères spéciaux. N'étant réellement pas douée avec les regex, j'ai tenté d'utiliser les scripts JS de replace proposés pour le QEEL (en changeant le getElementById vers un getElementsByClassName), mais rien n'y fait. J'ai donc essayé de trouver d'autres solutions, notamment avec l'utilisation de fonctions et autres au travers de JS natif et jQuery... Malheureusement, je ne trouve pas solution à mon problème car il semble que mes tentatives ne mènent à rien...

Je vous laisse les scripts utilisés ci-dessous, si jamais quelqu'un sait me dire où j'ai loupé quelque chose
Tentative / Script 1
Code:
.innerHTML=document.getElementsByClassName('secondarytitle').innerHTML.replace(/é/,"e");

.innerHTML=document.getElementsByClassName('secondarytitle').innerHTML.replace(/è/,"e");
Tentative / Script 2 (qui fonctionne mais m'ajoute tous les autres secondarytitle = https://i.goopics.net/hjls75.png )
Code:
$(function(){$(function(){
const element = $(".secondarytitle");
const textToReplace = element.text();
const newText = textToReplace.replace("é", "e");
element.text(newText);

    })});
Et duplicata du script 2 formulé un peu différemment (qui ne fonctionne pas du tout, bien que j'imagine que c'est l'appel de la fonction qui n'est pas bon ici)
Code:

let changeText = (e) => {
  const element = $(".secondarytitle");
  const textToReplace = element.text();
  const newText = textToReplace.replace("é", "e");
  element.text(newText);
};
$(document).on('load', changeText);

Et la partie de mon template concerné par cette modification :
Code:
<!-- BEGIN tablehead --><div class="CATglobal"><div class="catrow_container"><table class="fond" width="100%" border="0" cellspacing="7" cellpadding="5" id="categories">
<tr><td><div class="secondarytitle" >{catrow.tablehead.L_FORUM}</div></td></tr>

<!-- END tablehead -->

Je me doute que ma demande est possible, mais est-il possible de la réaliser sans avoir à ajouter d'id dans mon html ?

Je vous remercie d'avance pour vos réponses et votre aide. Bonne journée à vous Sourire amical
Blueberry Hills

Blueberry Hills
Nouveau membre

Féminin
Messages : 3
Inscrit(e) le : 03/12/2018

http://likeariver.forumactif.com
Blueberry Hills a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Script replace pour gérer les é, è (et autres) vers des lettres "classiques"

Message par Toryudo Mer 23 Nov 2022 - 17:32

Bonjour !
C'est un peu plus compliqué que ça dans la logique, plus facile dans le code.
Il faut faire une boucle sur tous les .secondarytitle pour remplacer à chaque fois dans leur texte le é par e.
La boucle est important, parce que sinon, on parle de tous les éléments en même temps... c'est pour ça que dans votre tentative Script 2, on a tous les textes qui apparaissent.

Et dernière petite chose, on utilisera replaceAll plutôt que replace, parce que ce dernier ne remplace le caractère trouvé qu'une seule fois.

Du coup, ce petit code devrait faire l'affaire :
Code:
$(function(){
  $(".secondarytitle").each(function(){
    $(this).html($(this).html().replaceAll("é", "e"));
    $(this).html($(this).html().replaceAll("è", "e"));
  });
});
Toryudo

Toryudo
Aidactif
Aidactif

Masculin
Messages : 1559
Inscrit(e) le : 31/03/2020

https://deus-academia.forumactif.com/
Toryudo a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Script replace pour gérer les é, è (et autres) vers des lettres "classiques"

Message par Blueberry Hills Mer 23 Nov 2022 - 17:51

C'était tellement évident... à vouloir à tout prix penser css j'en ai oublié qu'il y avait la possibilité de boucler Surprised  Arrow
Merci beaucoup pour votre précieuse aide et votre réponse rapide, ça fonctionne parfaitement ! Je mets donc en résolu Cool
Blueberry Hills

Blueberry Hills
Nouveau membre

Féminin
Messages : 3
Inscrit(e) le : 03/12/2018

http://likeariver.forumactif.com
Blueberry Hills a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum