我在尝试解析浮动内容时遇到问题并返回NaN

时间:2015-11-08 11:13:21

标签: javascript numbers parsefloat

我有这个

我正在做这个



function CheckLevel() {
  var PlyLevel = parseFloat(document.getElementById("player_level").innerHTML);
  return PlyLevel
}
alert(CheckLevel());

<div id="player_level">level 338</div>
&#13;
&#13;
&#13;

然后回来

NaN

我做错了什么?

1 个答案:

答案 0 :(得分:1)

在您的情况下,字符串不以数字开头,因此它将始终返回NaN

  

如果第一个字符无法转换为数字,则parseFloat返回NaN。 (摘自documentation)。

因此使用正则表达式获取浮点值并解析它。match(/\d+(?:\.\d+)?/)将匹配字符串中的任何浮点值。

&#13;
&#13;
function CheckLevel() {
  var PlyLevel = parseFloat(document.getElementById("player_level").innerHTML.match(/\d+(?:\.\d+)?/)[0]);
  return PlyLevel
}
alert(CheckLevel());
&#13;
<div id="player_level">level 332.3</div>
&#13;
&#13;
&#13;

<强> Regex explanation here

Regular expression visualization