我是编码的初学者。刚开始JS。这是我在这个论坛上的第一篇文章。 问题:请参阅代码。 " 999"使用引号输入。首先是数字(" 999"),它在屏幕上显示999。但如果我进入" 999" (在引号中包含)在输入框中,然后使用Number()从输入框转换值,它显示NaN ???即使我从输入中显示值,它也是" 999"。
请指导。
P.S。我试图上传截图,似乎没有出现!但是网址已经开始了。
<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>
答案 0 :(得分:7)
在输入框中键入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));