[英]Need to check whether user input is a number. Code is not working as intended. Can someone tell me what's wrong?
只需檢查提示用戶輸入的數據是否為Javascript中的數字
var userAge = prompt("Please enter your age", "");
if (typeof userAge == 'number') {
document.write("You are " + userAge + " years old.");
} else {
document.write('Please enter a valid number');
}
當我輸入28歲的年齡進行測試時,我期望“您今年28歲”。 將被打印到文檔中。 但是,它將打印代碼的其他部分:“請輸入有效的數字。”
prompt
中的值是一個string
。 使用isNaN
代替:
var userAge = prompt("Please enter your age", ""); if (isNaN(userAge)) { document.write('Please enter a valid number'); } else { document.write("You are " + userAge + " years old."); }
JavaScript中用單引號或雙引號引起來的任何數字或值都被視為字符串,因此, typeof userAge
等於'string'
。
請改用以下代碼:
var userAge = prompt("Please enter your age", "");
if (/^\d+[.]?\d+$/.test(userAge)) {
document.write("You are " + userAge + " years old.");
} else {
document.write('Please enter a valid number');
}
只需使用Number.parseInt()
轉換為數字,然后使用Number.isNaN()
如下所示:
var userAge = parseInt(prompt("Please enter your age")); if (isNaN(userAge)) { document.write('Please enter a valid number'); } else { document.write("You are " + userAge + " years old."); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.