簡體   English   中英

與 Number.isInteger() 苦苦掙扎

[英]struggling with Number.isInteger()

我有一個任務是從十進制數到二進制數的轉換器,反之亦然。 我已經完成了我需要的一切,但我不知道如何保護網站免受用戶輸入帶有小數點后部分的數字的影響。

所以我在互聯網上愚弄並找到Number.isInteger() ,但我不知道它是如何工作的。 嘗試編寫一些測試內容(正如您可以在這堵文字牆下觀察到的那樣),但似乎沒有任何效果。 任何人都可以就 Number.isInteger() 的工作原理提供任何幫助嗎?

 pepege() { var a = +document.getElementById("x").value; var b = Number.isInteger(a); document.getElementById("out").innerHTML = b; }
 <input type="text" id="x"> <br> <input type="button" value="xddddd" onclick="pepege();"> <br> <a id="out"></a>

感謝您就如何推進這一點提供任何和所有建議。

您可以添加事件偵聽器並強制用戶輸入數字。 據我了解,您在用戶輸入方面遇到問題

 const pepege = () => { var a = +document.getElementById("x").value; var b = Number.isInteger(a); document.getElementById("out").innerHTML = b; } document.getElementById("x").addEventListener("input", event => { document.getElementById("x").value = document.getElementById("x").value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1') });
 <input type="text" id="x"> <br> <input type="button" value="xddddd" onclick="pepege();"> <br> <a id="out"></a>

將您的var a包裝在parseFloat()中。 輸入類型文本總是返回一個字符串。 使用parseFloat() ,您將獲得非數字字符的 NaN、浮點數的浮點數和 integer 的 integer。

 function pepege() { var a = parseFloat(document.getElementById("x").value); var b = Number.isInteger(a); document.getElementById("out").innerHTML = b; }
 <input type="text" id="x"> <br> <input type="button" value="xddddd" onclick="pepege();"> <br> <a id="out"></a>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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