你们都是怎么判断一个字符串的内容是数字的?

我只能想到
let a ;
a = 有可能是字母,数字,中文,符号等等;
if(Number.isFinite(a - 0) === true){
// 那么这个a是一个有限大的数字,但不能判断无穷大的数字。
}
有其他方式更合理的吗

阅读 3.3k
3 个回答

isNaN()应该是可以满足题主的需求,方法意思是检验参数是不是一个非数字。

当要检验的变量是字符串类型时,只有字符串是纯数字组成时,这个方法才会返回false,其他情况都会返回true

这个方法的机制就是在内部把参数进行了类型转换,转换数字类型的时候遇到字符串就会停止并返回NaN,所以只有纯数字组成的字符串才会被成功转换成数字。
另外如果是字符串的'Infinity',它都可以被转换成相应的数字类型的无限大和无限小,所以并不需要特殊处理。

var reg=/^\d+$/ig
if(reg.test(str)){
console.log('是');
}else{
console.log('不是');
}

如果兼顾小数用下面的:

var reg=/^\d+(.\d+)?$/ig

那么这个a是一个有限大的数字,但不能判断无穷大的数字
无穷大是指1/0么
else if(a==='Infinity'){
  console.log('这是无穷大字符串')
}

没明白题目, 搞笑达一发

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题