为了账号安全,请及时绑定邮箱和手机立即绑定

(内置)JavaScript检查字符串是否为有效数字的方法

(内置)JavaScript检查字符串是否为有效数字的方法

慕虎7371278 2019-06-24 13:46:07
(内置)JavaScript检查字符串是否为有效数字的方法我希望在与旧的VB6相同的概念空间中有一些东西IsNumeric()功能?
查看完整描述

3 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

若要检查变量(包括字符串)是否为数字,请检查它是否不是数字:

不管变量内容是字符串还是数字,这都是可行的。


isNaN(num)         // returns true if the variable does NOT contain a valid number

实例

isNaN(123)         // false

isNaN('123')       // false

isNaN('1e10000')   // false (This translates to Infinity, which is a number)

isNaN('foo')       // true

isNaN('10px')      // true

当然,如果你需要的话,你可以否定这一点。例如,要实现IsNumeric你给的例子:


function isNumeric(num){

  return !isNaN(num)

}

若要将包含数字的字符串转换为数字,请执行以下操作:

只有在字符串有效的情况下才能工作。只包含数字字符,否则它将返回。NaN.


+num               // returns the numeric value of the string, or NaN 

                   // if the string isn't purely numeric characters

实例

+'12'              // 12

+'12.'             // 12

+'12..'            // Nan

+'.12'             // 0.12

+'..12'            // Nan

+'foo'             // NaN

+'12px'            // NaN

松散地将字符串转换为数字

用于将“12 px”转换为12,例如:


parseInt(num)      // extracts a numeric value from the 

                   // start of the string, or NaN.

实例

parseInt('12')     // 12

parseInt('aaa')    // NaN

parseInt('12px')   // 12

parseInt('foo2')   // NaN      These last two may be different

parseInt('12a5')   // 12       from what you expected to see. 

浮子

记住,不像+num, parseInt(顾名思义)将通过切分小数点后的所有内容将浮点数转换为整数(如果要使用parseInt() 因为这种行为,你最好还是用另一种方法代替):


+'12.345'          // 12.345

parseInt(12.345)   // 12

parseInt('12.345') // 12

空字符串

空字符串可能有点违背直觉。+num将空字符串转换为零,并且isNaN()假设情况相同:


+''                // 0

isNaN('')          // false

但parseInt()不同意:


parseInt('')       // NaN


查看完整回答
反对 回复 2019-06-24
?
皈依舞

TA贡献1851条经验 获得超3个赞

你可以去雷吉普街:

var num = "987238";if(num.match(/^-{0,1}\d+$/)){
  //valid integer (positive or negative)}else if(num.match(/^\d+\.\d+$/)){
  //valid float}else{
  //not valid number}


查看完整回答
反对 回复 2019-06-24
?
慕森卡

TA贡献1806条经验 获得超8个赞

如果您只是想检查一个字符串是否是一个整数(没有小数位),regex是一个很好的方法。其他方法,如isNaN对这么简单的事情来说太复杂了。


function isNumeric(value) {

    return /^-{0,1}\d+$/.test(value);

}


console.log(isNumeric('abcd'));         // false

console.log(isNumeric('123a'));         // false

console.log(isNumeric('1'));            // true

console.log(isNumeric('1234567890'));   // true

console.log(isNumeric('-23'));          // true

console.log(isNumeric(1234));           // true

console.log(isNumeric('123.4'));        // false

console.log(isNumeric(''));             // false

console.log(isNumeric(undefined));      // false

console.log(isNumeric(null));           // false

只允许阳性整数使用如下:


function isNumeric(value) {

    return /^\d+$/.test(value);

}


console.log(isNumeric('123'));          // true

console.log(isNumeric('-23'));          // false


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 809 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信