Parser du js - PHP - Programmation
Marsh Posté le 21-04-2008 à 08:17:51
C'est pas simple. Y a pleins de cas qui peuvent poser problème, notamment :
- les accolades imbriquées (conditions, boucles, etc.) qui imposeraient d'utiliser de la récursion ((?R) ou "manuellement" ) ;
- les choses contenues dans des chaînes de caractères, au hasard une accolade (voire une chaîne de caractères contenant une fonction).
C'est peut-être faisable, mais tu risques de bien t'amuser. Pourquoi t'as besoin de faire ça, concrètement ?
Quant au masque que tu postes, il faudrait au moins commencer par activer l'option U (voir doc). (Autre chose, là tu empêches les espaces/sauts de ligne entre deux fonctions, ce qui n'est probablement pas voulu. )
Marsh Posté le 21-04-2008 à 09:10:23
Ouais, je sent que je vais rigoler..
J'ai pensé a ca:
function toto(){
}
toto(); //}
Et ca ca passe alors que ca devrais pas passer dans mon idée.
Sinon le pourquoi, c'est que je veux inclure des scripts qui peuvent venir de nimporte ou, mais je veux garantir qu'on execute pas un de ces scripts au chargement (onLoad) mais seulement sur un onClick. Je compte parser les liens onLoad et <script></script> après.
Je sent que je vais devoir me faire une vraie grammaire qui prend en compte les commentaires ..
Sinon je vais regarder l'option U. Merci.
Marsh Posté le 21-04-2008 à 07:36:13
Bonjour!
Je souhaite vérifier que du code javascript ne contient que des déclarations de fonctions. J'utilise une expression rationnelle mais ça ne passe pas..
Voila mon expression:
$scrip=preg_match('`(function (.*)\((.*)\)\{.*\}([ \n]*))*`', $script,$match);
Auriez vous une idée de ce qui ne va pas? Si vous ne comprenez rien à mon expression, j'essaierai de vous expliquer ce que j'imagine que ça dois faire. Merci de votre aide.
Message édité par milootooloo le 21-04-2008 à 07:50:36