检查字符串类型而不进行转换

时间:2017-03-02 06:32:59

标签: javascript lodash

是否可以检查哪一个是数字,例如

abc或123没有投射?

显然,我们的眼睛abc不是数字。但我使用了Lodash的_.isNumber(123)它返回false,因为我没有将123的字符串转换为整数。

3 个答案:

答案 0 :(得分:1)

使用Lodash中的_.isNaN或JavaScript isNaN

_.isNaN(Number("123")) // false 
_.isNaN(Number("asds")) // true

答案 1 :(得分:0)

您可以使用

检查它是否是有效号码

数字(123) - >会给你一个有效的号码 号(" ABC") - >会回报你NaN

一元运营商也可以实现同样的目标 +123 - >会给你123(因为它是有效的nymber) +" abc" - >将是NaN(不是有效数字)

检查此代码段



var number1=123
console.log(Number(number1))

var number2="abc"
console.log(Number(number2))




答案 2 :(得分:0)

以为我会告诉你你的选择:

如果没有施法,我没有理由这样做。但是,有可能:

function isNumeric(str) {
    return /^\d+$/.test(str)
}
isNumeric('123') // true
isNumeric('abc') // false

此正则表达式只检查字符串中的每个字符是否为数字。所以这很好,但通常你会试图避免使用正则表达式。所以投下它,正如其他答案所做的那样:

function isNumeric(str) {
    return !isNaN(Number(str))
}

或者简单地说:

return !isNaN(+str)

或者,如果您不想考虑空字符串('')数字,只需将强制转换强制转换为布尔值,而不是执行isNaN()检查:

return Boolean(+str)

或者简单地说:

return !!+str

与JavaScript一样,boolean强制转换是可选的,具体取决于您打算如何在其余代码中使用结果。所以我们真的可以做到:

return +str

如果您希望将以数字开头的字符串视为数字,也可以使用parseInt()