javascript - Number ("999") 给出 999 但 Number(input.value) 给出 NaN,即使显示 input.value 给出 "999"正是我在 Number ("999"中输入的内容

标签 javascript numbers

Screenshot of my attempt

我是编码初学者。刚开始学JS。这也是我在这个论坛上的第一篇文章。 问题:请看代码。 “999”是用引号输入的。首先是 Number("999"),在屏幕上显示 999。但是如果我在输入框中输入“999”(包括引号),然后使用 Number() 转换输入框中的值,它会显示 NaN???即使当我显示输入值时,它是“999”。

请指导。

附:我尝试上传截图,但似乎没有显示!但网址在我帖子的开头。

<html>
   <body>
       <p id="demo1"></p>
       <br>
       <br>
       <br>
       <input id="number" />
       <br>
       <button onclick="fn()"> Type "999" with quotes</button>
       <p id="demo2"></p>
       <p id="demo3"></p>
       <script>
           document.getElementById("demo1").innerHTML = Number("999");
           function fn()
           {
               var age = Number(document.getElementById("number").value);
               document.getElementById("demo2").innerHTML = age;
               document.getElementById("demo3").innerHTML = document.getElementById("number").value;

           }
       </script>
   </body>
</html>

最佳答案

当您在输入框中输入999时,输入框的值为“999”。在代码中引用 value 属性将被视为与文字 "999" 相同。

当您在输入框中输入"999"时,输入框的值为"\"999\""

这样想:如果您在输入框中键入 foo bar,则该值必须是字符串 "foo bar"。该值不能是 foo bar。这不是有效的 JavaScript 语法。

<小时/>

如果您想允许引号但不要求它们,您可以通过文本替换去掉所有引号:

var age = Number(document.getElementById("number").value.replace(/"/g, ''));

如果引号有意义并且值像 JavaScript 字符串一样被解释很重要,您可以使用 JSON.parse:

var age = Number(JSON.parse(document.getElementById("number").value));

关于javascript - Number ("999") 给出 999 但 Number(input.value) 给出 NaN,即使显示 input.value 给出 "999"正是我在 Number ("999"中输入的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36927044/

相关文章:

javascript - onmouseover 与 ajax 不工作

javascript - 库使用 localStorage - Chrome 网上应用店

javascript - 第一个 Datepicker onchange 第二个日期将自动按 1 年

c - 测试 C 中字符串中的数字

javascript - 如何将数字分解为数字值?

javascript - 如何向 webAPI 应用程序正确发送 PUT 请求?

javascript - 未捕获的类型错误 : Cannot read property 'querySelector' of null

php将数字转换为分钟

sql - 如何使用SQL计算表中的唯一记录并获取这些唯一记录的数量?

将一个范围列表缩放到另一个范围的算法