Bonjour à tous,
Alors voilà, je vous explique mon petit souci...
J'ai une fonction javascript qui est censée remplacer mes esperluettes (&) par un pseudoBBcode ([esperluette]) afin que je puisse faire passer des chaînes de caractères contenant ces fameuses esperluettes (j'aime bien ce mot) dans la méthode 'POST' de ma petite fonction mirexpress qui gère les inclusions ajax.
Je me suis rendu compte, en fait, en faisant passer des urls php contenant des esperluettes que ben ca ne marchait pas et que ca prenait uniquement du début de ma chaîne jusqu'à l'esperluette... (Ben vi, puisque les esperluettes définissent les arrêts des valeurs des $_POST ^^)
Bref, je ne me suis pas pendu au plafond pour autant et j'ai utilisé la méthode replace de javascript, pensant qu'elle agirait comme un preg_replace_all de chez mon elephpant préféré... Et là, ô misère, ô traitresse, ô vieillesse ennemie, cette méthode ne marche qu'une fois.
Toujours peu enclin à monter une corde au plafond, j'ai cherché sur le net si javascript avait un "preg_replace_all" à lui... Et là, j'ai eu à boire à et manger, mais pas ce que je voulais.
Je me suis donc tourné vers la méthode split de javascript, avec ceci, ca marche très bien pour des esperluettes célibataires mais j'ai toujours le même souci avec des esperluettes collées à d'autres casses.
Ma question, la voici ^^ :
Comment puis-je faire pour traîter l'ensemble de mes esperluettes dans une chaîne de caractères ?
Si quelqu'un connait la réponse, je lui en serai fort gré de la partager avec moi !
Merci à tous !
Edith :
Voici la solution que j'ai trouvé, mais je la trouve un peu barbare...
(en fait, je réinvente un peu le replace_all ^^ mais il n'existe pas sous javascript ???)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function enleveEsperluette(texte) { var resultat=''; var reg = new RegExp("&"); var remplace = '[esperluette]'; for (var i=0; i<texte.length; i++) { var morceau=texte.charAt(i); resultat += morceau.replace(reg, remplace); } return resultat; }
Partager