expression régulière créée dynamiquement
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <script>var s='Placenta antérieur BI. - Distance col : le 01/01/2010'
var s1='Placenta antérieur BI.'
var s2='Placenta antérieur BI. - Distance col : 12 le 01/01/2010'
var s3='Placenta antérieur BI. - Distance col : 12 le'
var rexExp='^Placenta antérieur BI\.$|^Placenta antérieur BI\. - Distance col : (.*) le [0-3]{1}[0-9]{1}/[0-1]{1}[0-9]{1}/[0-9]{4}$'
var ref=new RegExp(rexExp,'g');
if (ref.test(s))
{
alert('s');
}
if (ref.test(s1))
{
alert('s1');
}
if (ref.test(s2))
{
alert('s2');
}
if (ref.test(s3))
{
alert('s3');
}
</script> |
bonjour, ci dessus un petit script javascript qui doit vérifier que les expressions s, s1, s2 et s3 répondent a l'expression regExp.
Là ou j'ai un problème, c'est que je n'arrive pas a trouver la bonne expression.
Quoique je tente, 2 des 4 string répondent a mon expression.
la donnée importante du problème est que cette expression est auto générée dynamiquement en fonction d'un phrase de départ.
du type:
je ne suis [text:] le [date:] à [heure:].
>> devrait renvoyer une expression permettant de valider:
s0 >> je suis.
s1 >> je suis. dispo le à
s2 >>je suis. dispo le 12/02/2008 à
s3 >>je suis. dispo le 12/02/2008 à 12h25
s4 >>je suis. le 12/02/2008 à 12h25
s5 >>je suis. le à 12h25
s6 >>je suis. dispo le 12/02/2008 à 12h25
s...>> etc...
le modele est simple:
si aucun élément entre crochet n'est rempli, la chaine est egale au début jusqu'au premier point.
sinon elle est egale a tous les texte statique + les valeurs des élement entre crochet, si leur valeur est différent de null.
Si une bonne ame peut me conseiller ca serait trés cool.
Merci d'avance.