简体   繁体   English

与 Number.isInteger() 苦苦挣扎

[英]struggling with Number.isInteger()

I have an assignment to make a converter from decimal to binary numbers and vice versa.我有一个任务是从十进制数到二进制数的转换器,反之亦然。 I have done everything I need, but I have no idea how to protect the site from the user entering a number with the part after the decimal point.我已经完成了我需要的一切,但我不知道如何保护网站免受用户输入带有小数点后部分的数字的影响。

So I fooled around the internet and found Number.isInteger() , yet I have no idea how this works.所以我在互联网上愚弄并找到Number.isInteger() ,但我不知道它是如何工作的。 Tried writing some test stuff (as you can observe beneath this wall of text) but nothing seemed to work.尝试编写一些测试内容(正如您可以在这堵文字墙下观察到的那样),但似乎没有任何效果。 Can anyone offer any help as to how exactly Number.isInteger() works?任何人都可以就 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>

Thanks for any and all advice on how to move forward with this.感谢您就如何推进这一点提供任何和所有建议。

You can add event listener and force user to enter just number.您可以添加事件侦听器并强制用户输入数字。 As i understand you are having problem with user inputs据我了解,您在用户输入方面遇到问题

 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>

Wrap your var a in parseFloat() .将您的var a包装在parseFloat()中。 Input type text always returns a string.输入类型文本总是返回一个字符串。 With parseFloat() , you'll get NaN for non-numeric characters, a float for a float, and an integer for an integer.使用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.

相关问题 如何在JavaScript中修复Number.isInteger()函数 - How to fix Number.isInteger() function in JavaScript if.IsInteger()在if else语句中不起作用 - Number.IsInteger() in if else statement not working Number.isInteger(this) 在 Number.prototype 方法中不起作用 - Number.isInteger(this) doesn't work in Number.prototype method 我还能用什么来代替 Number.isInteger? - What else can i use instead of Number.isInteger? 使用 Number.isInteger() 方法得到错误的结果,javascript - Getting wrong result with Number.isInteger() method, javascript 创建的Number.isInteger(x)无法在IE中工作 - Number.isInteger(x) which is created can not work in IE 我需要检查一个数字是否不是小数,我正在尝试使用 Number.isInteger() 但不起作用 - I need to check if a number is not a decimal, I'm trying with Number.isInteger() but doesn't work 在以下Javascript数组方案中,parseInt()和Number.isInteger()之间的功效差异? - Difference in efficacy between parseInt() and Number.isInteger() in following Javascript array scenario? Node.js对象函数Number(){[native code]}没有方法&#39;isInteger&#39; - Node.js Object function Number() { [native code] } has no method 'isInteger' 努力比较边数以确定形状类型 - Struggling to compare number of sides to determine shape type
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM