Probleme avec les expressions regulières (string.replace())

Gorrk Messages postés 96 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 26 avril 2007 - 2 déc. 2003 à 16:56
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 9 déc. 2003 à 15:14
Voilà je souhaite transformer du code perso (, , ect) en code HTML.
Voilà comment je fais :

var text=document.forms[0].corps.value;
text=text.replace(/(\n\r)|(\r\n)|\r|\n/g,"
");
text=text.replace(/\[x\](.+)\[\/x\]/g,"<x>$1</x>");


Mais dès qu'il y a plusieurs du même type ça ne marche pas :
Exemple :
[x]Test 1/x[x]Test 2/x

Et ça me sort :
<x>Test 1/x[x]Test 2</x>

3 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 déc. 2003 à 13:05
[size=1][b][brown]Bonjour[black]
j'ai eu le même problème, et j'ai
fini par faire une boucle, car il me
semblait qu'effectivement on ne
remplaçait que la 1ère occurence.
et sur du "texte tout simple"
[brown]Cordialement. Bul
0
Gorrk Messages postés 96 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 26 avril 2007
6 déc. 2003 à 14:06
Je ne crois pas que ce soit le même problème.
Pour remplacer toutes les occurences, il faut rajouter un paramêtre "g" :
text=text.replace(/\[x\](.+)\[\/x\]/g,"<x>$1</x>");
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 déc. 2003 à 15:14
Bonjour
par exemple pour simplifier:

<script language="javascript">
sor.value=ent.value.replace
(/(\[x\])([A-Za-z0-9 ]+)(\[\/x\])/g,"<x>$2</x>");
</script>
si .+ au lieu de [A-Za-z0-9 ]+
$2 = Test 1/x[x]Test 2/x[x]Test 3
est-ce normal ? je ne sais pas ?
que veut dire . ? tout vient de là ? non ?
j'aide ou je perturbe ?
Cordialement. Bul
0
Rejoignez-nous