Javascript 比较数字给出错误答案

标签 javascript

我有一个表单,用户在其中填写一个数字,然后将该表单的值与其旁边的测量值进行比较。在这种情况下,每当我输入数字 1 时,它看起来都没有被读取,并且一直给我错误的结果。无论是 1、10、111 还是 1111000,输出都将始终为 false。

这是代码片段:

var elC4 = document.getElementById("elC4");
elC4.addEventListener("focusout", function () {
    var elE4 = document.getElementById("elE4");
    var val = elD4.value;
    var result = val.match(/\d/g);
    result = result.join("");
    console.log(elC4.value);
    console.log(result);
    console.log(elC4.value > result);

    if (elC4.value > result) {
        elE4.value = "Tidak Memenuhi";
    } else {
        elE4.value = "Memenuhi";
    }
});

控制台.log:

console.log output

我圈出的行是有问题的行,其他行具有类似的功能并且工作正常。

那么到底出了什么问题呢?

最佳答案

我认为您正在比较 2 个字符串。因此,结果不正确。

"10" > "2" ==> result is false

我建议这样比较:

+"10" > +"2" ==> result will be true ( in this case: +elC4.value > +result )

希望这对你有帮助,兄弟!

关于Javascript 比较数字给出错误答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59296601/

相关文章:

javascript - 在使用它之前,我是否必须在 Javascript 中的对象内部声明一个空数组?

javascript - 使用react-native-svg-charts的多折线图

javascript - 在 objectID 上调用 .getTimeStamp

javascript - 如何使用 PHP 和 JQuery AJAX 在 <div> 标签中检索和插入 MySQL 数据?

javascript - 获取网站的主要颜色

javascript - 如何用 2 个 SVG 制作自定义进度条?使用 Canvas ?

javascript - ui-bootstrap-tpls-0.14.3.min.js :8 Uncaught ReferenceError: angular is not defined

javascript - setTimeout 无法消除 <p> 标签

javascript - 如何使用 TypeScript 接口(interface)检查这三个值的类型?

javascript - Angular Directive(指令)的范围继承