2
votes

Tableau de filtres contenant uniquement un mot spécifique

J'ai une liste de tableaux. Je veux obtenir les éléments qui commencent par "tar" et le numéro suivi de celui-ci

.match(/^tar+\[0-9]/)

Je ferai la boucle vers ce tableau et vérifierai en utilisant regex. C'est le regex que j'ai essayé. Mais je n'ai pas pu résoudre le nombre suivi de 'tar'.

var array = ["dataseqno", "yrsno", "tar01", "tar02", "tar03", "tar04", "tar05", "tar06", "tar07", "tar08", "tar09", "tar10", "tar11", "tar12", "status"]


3 commentaires

@CertainPerformance édité. Je vous remercie


Qu'en est-il du Array # filter ?


Essayez ^ tar [0-9] +


4 Réponses :


4
votes

Il filtrera le tableau sur la base de regex qui trouve essentiellement le mot tar et vérifie s'il est suivi d'un nombre

var array = ["dataseqno", "yrsno", "tar01", "tar02", "tar03", "tar04", "tar05", "tar06", "tar07", "tar08", "tar09", "tar10", "tar11", "tar12", "status"]
console.log(array.filter((e)=>e.match(/^tar[0-9]+/)));
   


1 commentaires

Mieux encore: vous pouvez le changer en une seule ligne: array.filter (e => e.match (/ ^ tar [0-9] + /)); en utilisant le retour implicite du fonction de flèche;)



5
votes

Utilisez filter () sur le tableau et changez votre expression régulière en ^ tar [0-9] + comme ceci:

+

Cela vérifie si l'élément commence par tar au début de la chaîne, puis contient des chiffres après.


Répartition de l'expression régulière, caractère par caractère:

[0-9]

Correspond au début de la chaîne

tar

Correspond à la chaîne tar code >

^

Correspond à tous les caractères du jeu de caractères 0-9 (correspondra à 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9)

var array = ["dataseqno", "yrsno", "tar01", "tar02", "tar03", "tar04", "tar05", "tar06", "tar07", "tar08", "tar09", "tar10", "tar11", "tar12", "status"];

var match = array.filter(str => str.match(/^tar[0-9]+/));

console.log(match);

Correspond à un ou plusieurs des sélecteurs précédents


0 commentaires

0
votes

Utilisez ce code:

let array = ["dataseqno", "yrsno", "tar01", "tar02", "tar03", "tar04", "tar05", "tar06", "tar07", "tar08", "tar09", "tar10", "tar11", "tar12", "status"]

const patt = new RegExp("tar+[0-9]");

let result = array.filter( x => patt.test(x) )

console.log(result);


0 commentaires

0
votes

Sur la base de ce que vous avez demandé, avez essayé de simuler. S'il vous plaît essayez. Thnx

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
var names = ["dataseqno", "yrsno", "tar01", "tar02", "tar03", "tar04", "tar05", "tar06", "tar07", "tar08", "tar09", "tar10", "tar11", "tar12", "status"]

// Filter names
var filteredNames = 
  $.grep(names, function(v) {
    if(v.match(/^tar+\d{1,}/)){
      return v;
    }
    
 });
// show to console
$.each(filteredNames, function( i, val ) {
  console.log(val);
});


0 commentaires