JS判断是否为数字类型


1.isNaN是用来判断是否为数字,比如1,1.05之类的。

function IsNumber(obj)
{
if(isNaN(obj.value))
{
alert('
必须为金钱类型!');
}
}

2.用正则表达式判断是否为整数
function BASEisNotInt(obj){
//
判断是否为整数
var re =/^[1-9]+[0-9]*]*$/; //判断字符串是否为数字 ^[0-9]+.?[0-9]*$/
if (!re.test(obj.value))
{
alert("
请输入数字(例:1)!");
}
}

下面为普通函数写法

function BASEisNotNum(theNum)
{
//
判断是否为数字
if(BASEtrim(theNum)=="")
return true;
for(var i=0;i<theNum.length;i++){
oneNum=theNum.substring(i,i+1);
if (oneNum<"0" || oneNum>"9")
return true;
}
return false;
}

function BASEisNotInt(theInt)
{
//
判断是否为整数
theInt=BASEtrim(theInt);
if ((theInt.length>1 && theInt.substring(0,1)=="0") ||BASEisNotNum(theInt)){
return true;
}
return false;
}

function BASEisNotFloat(theFloat)
{
//
判断是否为浮点数
len=theFloat.length;
dotNum=0;
if (len==0)
return true;
for(var i=0;i<len;i++){
oneNum=theFloat.substring(i,i+1);
if (oneNum==".")
dotNum++;
if ( ((oneNum<"0" || oneNum>"9") && oneNum!=".")|| dotNum>1)
return true;
}
if (len>1 && theFloat.substring(0,1)=="0"){
if (theFloat.substring(1,2)!=".")
return true;
}
return false;
}

### JavaScript 中判断变量是否数字类型的多种方法 #### 使用 `typeof` 运算符 最简单的方式是利用 `typeof` 来检测变量的数据类型。对于数值型数据,返回的结果将是 `"number"`。 ```javascript let num = 123; console.log(typeof num === "number"); // true ``` 需要注意的是,`NaN`(Not-a-Number)虽然表示不是一个有效的数,但在 JavaScript 中其类型仍然是 `"number"`[^1]。 #### 利用 `isNaN()` 函数 为了更精确地区分有效数字和其他情况,可以结合 `isNaN()` 函数来验证: ```javascript function isNumeric(value) { return !isNaN(parseFloat(value)) && isFinite(value); } console.log(isNumeric(123)); // true console.log(isNumeric('123')); // true console.log(isNumeric(NaN)); // false console.log(isNumeric('abc')); // false ``` 此函数不仅能够处理整数和浮点数,还能正确解析字符串形式的数字表达式[^2]。 #### 应用正则表达式匹配纯数字串 当需要严格限定输入必须是由连续的阿拉伯数字组成时,可采用正则表达式的方案: ```javascript const regex = /^\d+$/; console.log(regex.test("123")); // true console.log(regex.test("-123")); // false, 负号不符合条件 console.log(regex.test("12.3")); // false, 小数点不在范围内 console.log(regex.test("hello world"));// false ``` 这种方法适用于那些仅接受无符号整数的应用场景。 #### 结合 `Number.isInteger()`, `Number.parseFloat()`, 或者其他内置静态方法 现代浏览器支持 ES6 提供的新特性,比如 `Number.isInteger()` 可用于确认给定参数是不是有限长度且不含小数部分的十进制整数;而像 `Number.parseFloat()` 则有助于安全转换并测试传入值能否被成功解释成合法实数。 ```javascript // 测试是否为整数 console.log(Number.isInteger(10)); // true console.log(Number.isInteger(-10)); // true console.log(Number.isInteger(10.5)); // false // 解析并检验浮点数 var floatNum = Number.parseFloat("123.45"); console.log(!isNaN(floatNum) && isFinite(floatNum)); // true ``` 这些工具提供了更加细粒度的选择依据,使得开发者可以根据实际需求挑选最适合的技术手段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值