如何从javascript中的字符串中提取数字

时间:2011-08-11 21:51:05

标签: javascript jquery

我在javascript中有一个元素如下:

 <span>280ms</span>

我想从span元素中提取280。我该怎么做? span元素中的内容将是任何数字,后跟ms。

9 个答案:

答案 0 :(得分:72)

parseInt()非常可爱。

HTML

<span id="foo">280ms</span>

JS

var text = $('#foo').text();
var number = parseInt(text, 10);
alert(number);

parseInt()会将任何字符串作为数字处理,并在到达非数字字符时停止。在这种情况下,m中的280ms。找到数字280后,将这些数字计算为基数10(第二个参数)并返回数字值280。请注意,这是一个实际数字而不是字符串。

编辑:
@Alex Wayne的评论。
只需先过滤掉非数字字符。

parseInt('ms120'.replace(/[^0-9\.]/g, ''), 10);

答案 1 :(得分:18)

试试这个:

var num = document.getElementById('spanID').innerText.match(/\d+/)[0];

jQuery版本:

var num = $('span').text().match(/\d+/)[0]; // or $('#spanID') to get to the span

如果您想要数字值(而不是字符串),请使用parseInt:

var num = parseInt($('span').text().match(/\d+/)[0], 10);

答案 2 :(得分:11)

尝试以下

var strValue = // get 280m from the span
var intValue = parseInt(strValue.match(/[0-9]+/)[0], 10);

答案 3 :(得分:4)

您可以使用parseInt()功能

var number = parseInt($("span").text())

答案 4 :(得分:0)

使用jquery非常简单。可能更好地给跨度一个id

var mytext=replace($('span').text(),"ms","");

编辑删除ms

答案 5 :(得分:0)

更改范围:

<span id='msSpan'>280ms</span>

然后你可以这样做:

alert($('#msSpan').text());

答案 6 :(得分:0)

它总是以“ms”结束吗?你可以这样做:

var num = s.substring(0, s.length-2) 

其中s是span中的字符串。要获得此值,可以在span上使用text(),html()或innerHTML。

答案 7 :(得分:0)

一般来说数字没有负面或正面

<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]+/));

http://jsfiddle.net/R55mx/

答案 8 :(得分:0)

  

var myNumber = $('span')。text()。replace(/ [^ d。,] + /,'');