jQuery / Get numbers from a string
JqueryJquery Problem Overview
I have a button on my page with a class of comment_like
and an ID like comment_like_123456
but the numbers at the end are variable; could be 1 to 1000000.
When this button is clicked, I need to grab the end number so I can run tasks on other elements with the same suffix.
Is there an easy way of grabbing this number in jQuery?
$('.comment_like').click(function() {
var element_id = $(this).attr('id');
// grab number from element ID
// do stuff with that number
});
Jquery Solutions
Solution 1 - Jquery
You can get it like this:
var suffix = 'comment_like_123456'.match(/\d+/); // 123456
With respect to button:
$('.comment_like').click(function(){
var suffix = this.id.match(/\d+/); // 123456
});
Solution 2 - Jquery
In your click handler:
var number = $(this).attr('id').split('_').pop();
Solution 3 - Jquery
You can try this. it will extract all number from any type of string.
var suffix = 'comment_like_6846511';
alert(suffix.replace(/[^0-9]/g,''));
Solution 4 - Jquery
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);
Solution 5 - Jquery
This is a task for plain-old regular expressions, it has nothing to do with jQuery:
"comment_like_123456".match(/\d+/)
=> ["123456"]
Solution 6 - Jquery
jQuery is not a magic bullet. Use Javascript!
var temp = "comment_like_123456".split("_")
alert(temp[2])
Solution 7 - Jquery
Just get the id and run it through a regex.
$(mybutton).click(function() {
var num = parseInt(/^.*\_(\d+)$/.exec(this.id)[1])
});
Solution 8 - Jquery
This would be the easiest way to grab number from a string using jquery.
$(function(){
$('.comment_like').click(function() {
var element_id = $(this).attr('id');
var number = element_id.match(/\d+/);
alert(number);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class='comment_like' id='comment_like_123456'>Click Me To Get a number from string</button>