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"]
4 Réponses :
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]+/)));
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;)
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
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);
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);
});
@CertainPerformance édité. Je vous remercie
Qu'en est-il du
Array # filter?Essayez
^ tar [0-9] +