【问题标题】:How to fix Number.isInteger() function in JavaScript如何修复 JavaScript 中的 Number.isInteger() 函数
【发布时间】:2017-07-19 07:43:09
【问题描述】:

当我按下一个按钮时,它会从 textarea 中检索一个值 HTML 代码

<textarea rows="10" cols="17" id="list_card" placeholder="Insert Card Numbers"></textarea>
<input  name="infoDominio" type="submit"  class="btn btn-primary btn-block btn-sm" value="Add Card" onclick="add_card()">

Javascript 代码

var res = myVar[0];
var ress = 4567891;
var val1 = Number.isInteger(res);
var val2 = Number.isInteger(ress);
document.write(myVar[0]+" "+val1+" "+val2+" "+res);

myVar[0] = 4567891; myVar[0] 的值来自 textarea。但我无法获得正确的输出。我认为 val1 应该是真的。输出看起来像这样。你能建议我如何获得 val1=true。

4567891 false true 4567891

【问题讨论】:

  • var res = parseInt(myVar[0]);
  • 一个是由数字组成的String,另一个是Number
  • 如果输入设置为 756e775 则输出 '756e775 true true 756' 这是不正确的
  • 使用正则表达式检查答案

标签: javascript jquery html integer


【解决方案1】:

textarea 将生成 string 而不是 integer

你需要parse它为integer:

var res = parseInt(myVar[0]);

附带说明: 用户可以在您的文本区域中键入非整数值。也许您在寻找input type="number"/&gt;

【讨论】:

  • 如果我们设置 parseInt 然后我们输入浮点值,所以在 isInteger 中输出为真,所以 Number(var) 很有用
【解决方案2】:

只需将 val1 赋值更改为此

var val1 = Number.isInteger(parseInt(res));

【讨论】:

  • 如果我们设置 parseInt 然后我们输入浮点值,所以在 isInteger 中输出为真,所以 Number(var) 很有用
  • @ImBS 他说文本区域将由非浮点类型的卡号填充。
  • 很抱歉,但这是 appx 错误,所以我可能会考虑在其中发表评论和我的回答。
【解决方案3】:

使用这个正则表达式

  • /^ -> 字符串开始
  • \d+ -> 出现一个或多个数字 (\d)
  • $/ -> 字符串结束

function add_card(){
var res = document.getElementById('list_card').value;
var ress = 4567891;
var val1 = /^\d+$/.test(res);
var val2 = /^\d+$/.test(ress);
document.write(res+" "+val1+" "+val2+" "+ress);
}
<textarea rows="10" cols="17" id="list_card" placeholder="Insert Card Numbers"></textarea>
<input  name="infoDominio" type="submit"  class="btn btn-primary btn-block btn-sm" value="Add Card" onclick="add_card()">

【讨论】:

    【解决方案4】:

    我认为这种方式对你有用

    function add_card(){
    myVar =  document.getElementById("list_card").value;
    var res = Number(myVar);
    var ress = 4567891;
    var val1 = Number.isInteger(res);
    var val2 = Number.isInteger(ress);
    document.write(myVar+" "+val1+" "+val2+" "+res);
    }
    <textarea rows="10" cols="17" id="list_card" placeholder="Insert Card Numbers"></textarea>
    <input  name="infoDominio" type="submit"  class="btn btn-primary btn-block btn-sm" value="Add Card" onclick="add_card()">

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-07
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      • 2019-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多