【问题标题】:JavaScript: eliminate number with decimal .0JavaScript:用小数点 .0 消除数字
【发布时间】:2021-12-20 02:36:54
【问题描述】:

我需要你的建议(我是 JS 的初学者)。这是我的代码:

function fn(pin) {

  if (pin.length === 4 && !isNaN(pin) && pin % parseInt(pin) === 0 && Number(pin) > 0) {
    return true;
  }
  return false
}

console.log(fn("123a.78")) // false

所以我检查了长度,它是一个数字,它是整数并且它大于 0。 但是我应该如何编写条件来消除这种类型的字符串:“12.0”(因为它的长度也为 4 并且也是整数)?如果我尝试使用 pin.parseFloat 或 parseInt 的条件,它也会影响这种类型的字符串“1234”。或者我写错了……

【问题讨论】:

  • 使用正则表达式,例如return /^\d{4}$/.test(pin);。真的不涉及数学。
  • 感谢您的快速响应!看起来正则表达式可以在 JS 的许多情况下提供帮助。我还没有研究它们))。现在去学习了)
  • 你只是在解析字符串后寻找一个四位整数吗?或者0123 应该有效吗?
  • 0123 也会很好。我只想消除小数等于 0 的数字(如 16.0)

标签: javascript string integer numbers conditional-statements


【解决方案1】:

我会使用正则表达式来验证输入。 仅验证 4 位数字的正则表达式如下所示:/^[0-9]{4}$/

正则表达式具有允许它们测试变量是否属于它们的类型的方法。 例如:

const pin = '1234';
const pin2 = '12.4'
const regExp = /^[0-9]{4}$/

regExp.test(pin) //returns true

而:

regExp.test(pin2) //returns false

您可以将此验证用作 if/else 条件中的条件来执行您需要的代码。

关于正则表达式的免费代码教程 https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/#es6

正则表达式操场: https://regex101.com/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多