gpt4 book ai didi

javascript - JavaScript 中区分 0 和空字符串的最安全方法是什么?

转载 作者:行者123 更新时间:2023-12-02 18:18:44 24 4
gpt4 key购买 nike

根据用户输入,我收到一个必须包含数字的字符串。 0 和空字符串必须区别对待。

我做了这个简短的案例研究

0 == "" // true
parseInt(0) == "" // true
parseInt("") // NaN
parseInt("") == "NaN" // false
parseInt("") == NaN // false
typeof parseInt("") // "number"

通过一些额外的研究,我提出了这个解决方案(考虑 uInput 用户输入)

function userInput(uInput){
var n = parseInt(uInput);
if (isNan(n))
// empty string
else
// 0 or number
}

看起来 Google Chrome 能够正确区分 0 和空字符串。

我想知道的是:

  • 这是最好/最有效的解决方案吗?
  • 此解决方案与任何浏览器兼容吗?
  • 这到底是一个解决方案吗?有什么办法n可以变成除了数字之外的其他内容(考虑到 uInput 可以是任何类型的字符串)?

我不会问这个,但由于空字符串和 0 被视为相同(?!),我不知道我的代码可能暴露于哪些其他漏洞。

最佳答案

我会做这样的事情:

var nmbr = parseInt(uInput, 10);
if (!isNaN(nmbr)) {
// Yay, valid input!
} else {
// Ups, weird input...
}

这似乎是最简单、最正确的答案,因为 parseInt only returns an integer or NaN .

关于javascript - JavaScript 中区分 0 和空字符串的最安全方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19048574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com