Valider f390af9b rédigé par Maïeul's avatar Maïeul
Parcourir les fichiers

65f104c8 on avait oublié de vérifier le

test MATCH.

Or avec le passage par un json, on se retouve avec des strings.

Et donc au lieu d'effectuer

````
RegExp(/a/)
````

On faisait

````
RegExp('/a/')
````

Ce qui n'a strictement pas le même résultat.

On corrige. Corrélaire de cela : plus besoin des `\` d'encadrement,
aussi dans l'évaluation côté PHP. On
maintient tout de même pour compatibilité.

Donc les gens peuvent désormais utiliser indiférrement l'une ou l'autre
des syntaxe suivante

````
@champ@ MATCH '/s/'
@champ@ MATCH 's'
````
parent fd3f81d4
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+2 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -171,8 +171,10 @@ function saisies_tester_condition_afficher_si_string($champ, $operateur, $valeur
	} elseif ($operateur == '>=') {
		return $champ >= $valeur;
	} elseif ($operateur == 'MATCH') {
		$valeur = '/'.trim($valeur, '/').'/';#Sécurité si la personne ne met pas le /, vu que c'est désormais possible côté JS
		return preg_match($valeur, $champ);
	} elseif ($operateur == '!MATCH') {
		$valeur = '/'.trim($valeur, '/').'/';#Sécurité si la personne ne met pas le /, vu que c'est désormais possible côté JS
		return !preg_match($valeur, $champ);
	} else {//Si mauvaise operateur -> on annule
		return false;
+8 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -20,6 +20,14 @@ function saisies_afficher_si_js_defaut($parse, $saisies_form) {
	$negation = $parse['negation'];
	unset($parse['negation']);

	// Compatibilité historique de syntaxe, avant que l'on mette tout en JSON, on envoyait directement RegExp(valeur), il fallait donc que les // soitsentsdans valeur. Mais désormais on envoie en JSON, donc on a un string, donc il faut enlever les slashs avant d'envoyer au JS
	if (isset($parse['operateur'])
		and
		($parse['operateur'] === 'MATCH' or $parse['operateur'] === '!MATCH')
	) {
		$parse['valeur'] = trim($parse['valeur'], '/');
	}

	array_filter($parse);
	return $negation.'afficher_si('.json_encode($parse).')';
}