56 votes

jQuery / Obtenir des nombres à partir d'une chaîne

J'ai un bouton sur ma page avec une classe de comment_like et un ID comme comment_like_123456 mais les nombres à la fin sont variables ; peut être de 1 à 1000000.

Lorsque ce bouton est cliqué, je dois saisir le numéro de fin pour pouvoir exécuter des tâches sur d'autres éléments avec le même suffixe.

Existe-t-il un moyen simple de saisir ce numéro dans jQuery ?

 $('.comment_like').click(function() {
    var element_id = $(this).attr('id');

    // grab number from element ID

    // do stuff with that number

});

108voto

Sarfraz Points 168484

Vous pouvez l'obtenir comme ceci :

 var suffix = 'comment_like_123456'.match(/\d+/); // 123456

Concernant le bouton :

 $('.comment_like').click(function(){
  var suffix = this.id.match(/\d+/); // 123456
});

14voto

paislee Points 8670

Dans votre gestionnaire de clics :

 var number = $(this).attr('id').split('_').pop();

12voto

Anjyr Points 1433

Vous pouvez essayer ceci. il extraira tous les nombres de n'importe quel type de chaîne.

 var suffix = 'comment_like_6846511';
alert(suffix.replace(/[^0-9]/g,''));

DÉMO

4voto

Cory Danielson Points 3770

http://jsfiddle.net/hj2nJ/

 var x = 'comment_like_6846511';
var y = '';

for (i = 0; i < x.length; i++)
{
    if ("" + parseInt(x[i]) != "NaN") //if the character is a number
        y = y + x[i];
}

document.write(y);

3voto

meagar Points 85475

C'est une tâche pour les expressions régulières simples, cela n'a rien à voir avec jQuery :

 "comment_like_123456".match(/\d+/)

=> ["123456"]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X