Obtenir une sous-chaîne d’une chaîne en utilisant jQuery

J’ai un div avec les classes suivantes:

form-group val-presence-text val-type-pos-int val-length-10 has-success has-feedback 

Je veux obtenir le 10 du nom de classe val-length-10 . J’ai essayé diverses méthodes, mais aucune ne semble fonctionner pour un atsortingbut multi-classe dynamic tel que celui-ci. De plus, le nombre 10 peut être n’importe quel nombre entier positif et la classe peut être située n’importe où dans le groupe de classes.

Des idées?

Vous pouvez utiliser ceci:

 var val_length = $('div').attr("class").match(/val-length-(\d+)/)[1]; 

Une solution possible:

 var n = (this.className.match(/val-length-(\d+)/) || []).pop(); 

Ou dans le contexte:

 $('[class*="val-length-"]').each(function() { var n = (this.className.match(/val-length-(\d+)/) || []).pop(); console.log(n); }); 

En supposant que c’est ‘val-length’ qui ne change jamais et que seul l’entier se trouve à la fin, vous devriez pouvoir le faire:

 //get an array of classes on a specific element var classList =$('#elementId').attr('class').split(/\s+/); //loop through them all $.each( classList, function(index, item){ //check if any of those classes begin with val-length- if (item.indexOf('val-length' === 0) { console.log(item.subssortingng(11)) } }); 

Essaye ça…

 $("div[class*=val-length-]").each(function() { var s = this.className; var length = 0; $(s.split(" ")).each(function() { if (this.search("val-length-") === 0) { length = this.substr(11); } }); console.log(length); }); 

Il trouvera la division appropriée et en tirera la valeur pour vous.