Подтвердить что ты не робот

Как извлечь номер из строки в javascript

У меня есть элемент в javascript, например:

 <span>280ms</span>

Я хочу извлечь 280 из элемента span. Как мне это сделать? Содержание внутри элемента span будет любым числом, за которым следует ms.

4b9b3361

Ответ 1

parseInt() довольно милый.

HTML

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

JS

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

parseInt() будет обрабатывать любую строку как число и останавливаться, когда она достигает нечислового символа. В этом случае m в 280ms. После того, как вы нашли цифры 2, 8 и 0, оцениваете эти цифры как базу 10 (этот второй аргумент) и возвращают числовое значение 280. Обратите внимание, что это фактическое число, а не строка.

Изменить:
@Alex Wayne комментарий.
Сначала сначала отфильтруйте нецифровые символы.

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

Ответ 2

Попробуйте следующее:

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

Ответ 3

Попробуйте выполнить

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

Ответ 4

Вы можете использовать функцию parseInt()

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

Ответ 5

Использование jquery довольно просто. вероятно, лучше дать span id, хотя

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

отредактирован для удаления ms

Ответ 6

Измените диапазон в:

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

Затем вы можете сделать:

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

Ответ 7

Будет ли оно всегда заканчиваться на ms? Вы можете сделать:

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

где s - строка в пролете. Чтобы получить это значение, вы можете использовать text(), html() или innerHTML на пролете.

Ответ 8

в общем случае для чисел no mather negative или 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]+/));

http://jsfiddle.net/R55mx/