Bonsoir,

soit une chaîne source
((((1 ou 2) et (3 ou 4)) ou ((1 et 4) et (5 et 4))))

Soit le code javascript suivant


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
tab_numero  = new Array( 1,2,3,4,5);
tab_cleunik = new Array(-110447,-110449,-110448,10001967,10001966);
tab_clair = new Array("Tags de l'image à renseigner","Image indisponible","Image disponible","2° test français","Test fraançais");
var cr="";
var anomalie=false;
var chaine_clair="";
function pf_verifie(){
	anomalie=false;
	var source=fa_gid("tb_selection").value;
	pf_ExtraireNom(source);
}
function pf_ExtraireNom(chaine) {
  var exp=new RegExp("et|ou|\\(|\\)|or|and| +", "g");
  chaine_clair=chaine;
  var tabNom=chaine.split(exp);
  var bajouter=true;
  TabNum=new Array;
  Tabclair=new Array;
  Tabcleunik=new Array;
  var j=-1;
  cr+=tabNom+"\n";
  if (tabNom==null) {alert("Problème dans l'expression !");} 
  else {
    for (var i=0;i<tabNom.length;i++){
    	if(tabNom[i]!="" && pf_estNumérique(tabNom[i])){
    		bajouter=true;
    		for (var l=0;l<TabNum.length;l++){
	    		if (TabNum[l]==tabNom[i]){
	    			bajouter=false;
	    		}
	    	};
	    	if (bajouter==true){
	    		j++;
	    		TabNum[j]=tabNom[i];
	    	};
    	} else {
    		if(tabNom[i]==""){
    			//	raf
    		} else {
	    		anomalie=true;
    		}
    	}
    }
    TabNum.sort(pf_compare_entiers);
     for (var l=0;l<TabNum.length;l++){
     	bajouter=false;
     	for (var i=0;i<tab_numero.length;i++){
 
			if (TabNum[l]==tab_numero[i]){
				Tabclair[l]=tab_clair[i];
				chaine_clair = chaine_clair.split(TabNum[l]).join('"'+Tabclair[l]+'"');
				bajouter=true;
			}
		};
		if(bajouter==false){
			Tabclair[l]="??!!";
			chaine_clair = chaine_clair.split(TabNum[l]).join('"'+Tabclair[l]+'"');
			anomalie=true;
			cr+=TabNum[l]+" introuvable !!"+"\n";
		}
	};
    cr+="\n"+"Nombre différents trouvés : " + TabNum.length + "\n"+TabNum;
	}
}
function pf_compare_entiers(b, a) {
  	//	Pour trier du plus grand au plus petit : compare_entiers_func(b, a)
  	//	Pour trier du plus petit au plus grand : compare_entiers_func(a, b)
  	return parseInt(a) - parseInt(b)
}
function pf_estNumérique(val) {
	//return true;
    if (isNaN(parseFloat(val))) {
          return false;
     }
     return true;
}
Lorsque je n'ai pas de chiffre dans tab_clair
Code : Sélectionner tout - Visualiser dans une fenêtre à part
tab_clair = new Array("Tags de l'image à renseigner","Image indisponible","Image disponible","Deuxième test français","Test fraançais");
pf_ExtraireNom(source)
mon remplacement "en clair" des informations de la source fonctionnent bien

(((("Tags de l'image à renseigner" ou "Image indisponible") et ("Image disponible" ou "Deuxième test français")) ou (("Tags de l'image à renseigner" et "Deuxième test français") et ("Test fraançais" et "Deuxième test français"))))
Par contre, dès que j'ai un chiffre dans le tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
tab_clair = new Array("Tags de l'image à renseigner","Image indisponible","Image disponible","2° test français","Test fraançais");
mon remplacement ne fonctionne plus
car il me vire le "2" de "2°"
(((("Tags de l'image à renseigner" ou "Image indisponible") et ("Image disponible" ou ""Image indisponible"° test français")) ou (("Tags de l'image à renseigner" et ""Image indisponible"° test français") et ("Test fraançais" et ""Image indisponible"° test français"))))
Comment puis-je faire ?