Bonjour, je souhaite récupérer du texte entre chaque indice TA, TB, TC, TD
Voila le texte reçu
TA99TA, TB66TB, TC158TC, TD5652TD
Version imprimable
Bonjour, je souhaite récupérer du texte entre chaque indice TA, TB, TC, TD
Voila le texte reçu
TA99TA, TB66TB, TC158TC, TD5652TD
Code:
1
2
3
4
5
6
7 chaine='TA99TA, TB66TB, TC158TC, TD5652TD'; temp=chaine.split(', ') reg=/^[A-Z]{2}/; temp1= temp.map(function(m){ return m.match(reg)[0]; }) console.log (temp1)
Merci #SpaceFrog super ;)
ha mais non en fait tu veux recupérer les chiffres entre les TA ...
Code:
1
2
3
4
5
6
7 chaine='TA99TA, TB66TB, TC158TC, TD5652TD'; temp=chaine.split(', '); reg=/^([A-Z]{2})(.+)\1/u; temp1= temp.map(function(m){ return m.match(reg)[2]; }) console.log (temp1)
j'ai deja modifié pareil :mrgreen: Merci encore
Salut,
On peut aussi utiliser un temp[i].slice(2, -2) à la place de la RegExp...
Autre possibilité en se passant du split en traitant directement la chaine
donc certainement plus rapide ...
Code:
1
2
3
4
5
6
7 chaine='TA99TA, TB66TB, TC158TC, TD5652TD'; reg=/([A-Z]{2})(.+)\1(,|$)/g; temp=[]; while(ArrMatch = reg.exec(chaine)) { temp.push(ArrMatch[2]) } console.log (temp)
Ah oui bien vu mais (et oui il y a un petit mais) à la fin tu obtiens une string de l'ensemble des nombres donc pour récupérer chaque nombre un traitement supplémentaire est nécessaire comme un split par exemple, le même que celui que SpaceFrog a utilisé...
A moins que je me trompe ?
ben si c'est que ça ...
cette méthode est plus directeCode:
1
2
3 chaine='TA99TA, TB66TB, TC158TC, TD5652TD'; tab=chaine.match(/\d+/g); console.log(tab)
la méthode précedente permet éventuellement de conserver une trace de l'indice si l'on faisait un tableau littéral avec pour indice le match[1]
Code:
1
2
3
4
5
6
7
8
9
10 chaine='TA99TA, TB66TB, TC158TC, TD5652TD'; temp=chaine.split(', '); reg=/^([A-Z]{2})(.+)\1/u; temp1=[]; temp.forEach(function(m){ Matches=m.match(reg); temp1[Matches[1]] = Matches[2]; }); console.log (temp1); console.log (temp1['TC']);
Ah oui effectivement c'est bien vu.