I have an element in javascript like follows:
<span>280ms</span>
I want to extract 280 from the span element. How can I do it? The content within the span element will be any number followed by ms.
I have an element in javascript like follows:
<span>280ms</span>
I want to extract 280 from the span element. How can I do it? The content within the span element will be any number followed by ms.
parseInt()
is pretty sweet.
HTML
<span id="foo">280ms</span>
JS
var text = $('#foo').text();
var number = parseInt(text, 10);
alert(number);
parseInt()
will process any string as a number and stop when it reaches a non-numeric character. In this case the m
in 280ms
. After have found the digits 2
, 8
, and 0
, evaluates those digits as base 10 (that second argument) and returns the number value 280
. Note this is an actual number and not a string.
Edit:
@Alex Wayne's comment.
Just filter out the non numeric characters first.
parseInt('ms120'.replace(/[^0-9\.]/g, ''), 10);
Try this:
var num = document.getElementById('spanID').innerText.match(/\d+/)[0];
jQuery version:
var num = $('span').text().match(/\d+/)[0]; // or $('#spanID') to get to the span
If you want as numeric value (and not as string), use parseInt:
var num = parseInt($('span').text().match(/\d+/)[0], 10);
Try the following
var strValue = // get 280m from the span
var intValue = parseInt(strValue.match(/[0-9]+/)[0], 10);
in general for numbers no mather negative or positive
<div>
blah blah
<span>285blahblah</span>
</div>
var html= document.getElementsByTagName('div')[0].innerHTML;// or $('div').html() if jquery
var number = parseFloat(html.match(/-*[0-9]+/));
Change the span in:
<span id='msSpan'>280ms</span>
Then you can do:
alert($('#msSpan').text());
Will it always end in "ms"? You can do:
var num = s.substring(0, s.length-2)
where s is the string in the span. To get this value, you can use text(), html(), or innerHTML on the span.
using jquery is pretty simple. probably better giving the span an id though
var mytext=replace($('span').text(),"ms","");
edited to remove ms