簡體   English   中英

需要檢查用戶輸入是否為數字。 代碼無法正常工作。 有人可以告訴我怎么了嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM