diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index 226282507e5aff476de1bf4ee1dfd6ea8598bde1..6b0caafd3b65d05d8d8357e1e52a3e53a7c83ad2 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -495,13 +495,13 @@ function heures_minutes($numdate) {
 
 function recup_date($numdate){
 	if (!$numdate) return '';
-	if (ereg('([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2})', $numdate, $regs)) {
+	if (ereg('([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2}|[0-9]{4})', $numdate, $regs)) {
 		$jour = $regs[1];
 		$mois = $regs[2];
 		$annee = $regs[3];
 		if ($annee < 90){
 			$annee = 2000 + $annee;
-		} else {
+		} elseif ($annee<100) {
 			$annee = 1900 + $annee ;
 		}
 	}
@@ -1517,4 +1517,12 @@ function table_valeur($table,$cle,$defaut=''){
 	return isset($table[$cle])?$table[$cle]:$defaut;
 }
 
+// filtre match pour faire des tests avec expression reguliere
+// [(#TEXTE|match{^ceci$,Uims})]
+function match($texte,$expression,$modif="Uims"){
+	$expression=str_replace("\/","/",$expression);
+	$expression=str_replace("/","\/",$expression);
+  return preg_match("/$expression/$modif",$texte);
+}
+
 ?>
\ No newline at end of file