bonjour,
je cherche à extraire de cette chaine...
...les blocs suivant à la l'aide d'une regexp Javascript :
Code : Sélectionner tout - Visualiser dans une fenêtre à part {if a=="1"}test2.html{else}test3.html{/if} {assign var="test" value="tttt"} {if a>=3}test3.html{/if} alt="coucou" attr="test" onclick="{literal}location.href='toto.html'{/literal}"
Je ne veux pas extraire le bloc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 1/ {if a=="1"}test2.html{else}test3.html{/if} 2/ {assign var="test" value="tttt"} 3/ {if a>=3}test3.html{/if}
parce qu'il est encadré par des guillemets onclick="..."
Code : Sélectionner tout - Visualiser dans une fenêtre à part {literal}location.href=''{/literal}
Ces blocs sont des blocs smarty, les règles sont les suivantes :
{tag param}......{/tag}
ou
{tag param}
ou
{tag}
la regexp pourrait ressembler à ça mais marche pas :
J'obtiens la liste de tous les {..} mais pas les blocs smarty comme définit ci-dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var t='{if a=="1"}test2.html{else}test3.html{/if} {assign var="test" value="tttt"} {if a>=3}test3.html{/if} alt="coucou" attr="test" onclick="{literal}location.href=\'toto.html\'{/literal}"'; while ((v = /{[^}]*}/gi.exec(t))!=null){ console.info(v); }
pouvez-vous m'aider ?
Partager