kemply
@kemply
школьник

Как превратить строку в число?

В HTML есть тег:
<i class="priceOne">цена за 1 мес. - 25</i>

Через JS попытался сделать так:
$ p = document.getElementsByClassName("priceOne")[0];

$p = parseFloat($p.innerHTML);


Но мне выдает ошибку NaN. Почему?
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
DIITHiTech
@DIITHiTech
Fullstack javascript developer
Вытянуть числа со строки не проблема по индусскому феншую:
function getNumbers(str){ //вернет массив всех чисел в строке
         var reg=/\d+/g,results=[];
         while(match=reg.exec(str)){
             results.push(match[0]*1);
         }
         return results;
     }
     console.info("Numbers:",getNumbers("цена за 1 мес. - 25"));    //  Numbers: [1, 25]
     console.info("Price:", getNumbers("цена за 1 мес. - 25")[1]);  // Price: 25


А не индусы обрамляют тегом нужное значения и ищут его через селекторы...
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
zooks
@zooks
Frontend
Потому что делаешь parseFloat для строки, которая не выглядит как действительное число.
Ответ написан
@dmitryKovalskiy
программист средней руки
напишите 1*stringValue
Ответ написан
Комментировать
@mr-molodoy
Немного измените структуру шаблона.
Приблизительно вот так:
<div class="priceOne">
     цена за 1 мес. - <span>25</span>
</div>

и javascipt соответственно:
var priceMessage  = document.getElementsByClassName("priceOne")[0];
var priceRaw         = priceMessage.queySelector('span').innerHTML;
var price                = parseInt(priceRaw);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы