繁体   English   中英

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

[英]How to extract number from a string in javascript

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

 <span>280ms</span>

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

parseInt()非常可爱。

HTML

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

JS

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

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

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

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

尝试这个:

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

尝试以下

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

您可以使用parseInt() function

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

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

<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/

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

更改跨度:

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

然后你可以这样做:

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

它总是以“ms”结尾吗? 你可以做:

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

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

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

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

编辑删除 ms

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM