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

不请自来
  • 1.2k

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

回复
阅读 1.4k
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('这是无穷大字符串')
}

没明白题目, 搞笑达一发

你知道吗?

宣传栏