Reputation: 8397
Alright, so I have an HTML element as <div id="slide_item_#">
where #
is a number. What I would like to do, using Javascript, is get the number from the id. So I would assume a regular expression, I just don't know how to use them in Javascript.
var html_id = "slide_item_3";
var id_number = /* code here so that id_number == 3 */ ;
Upvotes: 0
Views: 2062
Reputation: 206058
if you don't know the prefix or suffix... you only want the ID number:
var id_number = html_id.replace(/\D+/,""); // Remove all non-digit characters
will result in:
var html_id = "slide_item_3" // 3
var html_id = "foo45bar" // 45
var html_id = "1-item-X" // 1
var html_id = "1-item-2" // 12 (take care of such cases!)
Upvotes: 0
Reputation: 630379
I would just parse the string without the prefix using parseInt()
, like this:
var id_number = parseInt(html_id.replace('slide_item_',''), 10);
An improvement, if you have the option, would involve naming your classes for your element the same as your id (i.e., "slide_item"), except that your id would have the correct number appended to the end (i.e., "slide_item2"). Then, in your code, you would simply use this.className
instead of explicitly using 'slide_item_', and the rest of this code would be more dynamic
Upvotes: 5
Reputation: 322492
var html_id = "slide_item_3";
var id_number = +html_id.split('_').pop();
Upvotes: 2