2012-02-14 24 views
35

Tengo un botón en mi página con una clase de comment_like y una ID como comment_like_123456 pero los números al final son variables; podría ser de 1 a 1000000.jQuery/Obtener números de una cadena

Cuando se hace clic en este botón, necesito tomar el número final para poder ejecutar tareas en otros elementos con el mismo sufijo.

¿Hay alguna manera fácil de obtener este número en jQuery?

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

    // grab number from element ID 

    // do stuff with that number 

}); 

Respuesta

76

Usted puede obtener de esta manera:

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

Con respecto al botón:

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

¿qué pasa si var sufijo = '(123) 131-2312'; – Swaraj

1

jQuery no es una bala mágica. ¡Usa Javascript!

var temp = "comment_like_123456".split("_") 
alert(temp[2]) 
1

Simplemente obtenga la identificación y ejecútela a través de una expresión regular.

$(mybutton).click(function() { 
    var num = parseInt(/^.*\_(\d+)$/.exec(this.id)[1]) 
}); 
+0

¿Qué hay aquí [1] después de la ejecución? – user938363

+0

@ user938363 Obtiene el primer grupo de captura en la cadena coincidente (es decir, todo entre el primer conjunto de paréntesis, lo que coincide con '\ d +' - un número) – mgibsonbr

3

Esta es una tarea para la llanura de edad expresiones regulares, no tiene nada que ver con jQuery:

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

=> ["123456"] 
10

En el controlador de clic:

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

Siempre que el número siempre llegue al final con un guión bajo anterior. Estrechamente acoplado, siempre y cuando html o requisitos no cambien :) – Sarfraz

3

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); 
Cuestiones relacionadas