JS判断输入值是否为正整数,判断变量是否为数字

这篇具有很好参考价值的文章主要介绍了JS判断输入值是否为正整数,判断变量是否为数字。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这篇文章将讨论如何确定一个变量是否代表 JavaScript 中的有效数字。

1.JS中的test是原来是JS中检测字符串中是否存在的一种模式,JS输入值是否为判断正整数代码:

<script type=”text/javascript”> 
  function test() { 
    var num = document.getElementById(“num”).value; 
    if (num==”") { 
      alert(‘请输入内容’); 
      return false; 
    } 
    if (!(/(^[1-9]\d*$)/.test(num))) { 
      alert(‘输入的不是正整数’); 
      return false; 
    }else { 
      alert(‘输入的是正整数’); 
    } 
  } 
</script> 

<html> 
<body> 
<input type=”text” id=”num” /> 
<input type=”button” value=”测试” οnclick=”return test()” /> 
</body> 
</html> 

扩展:

附判断数字、浮点的正则表达: 
”^\\d+$” //非负整数(正整数 + 0)
“^[0-9]*[1-9][0-9]*$” //正整数
“^((-\\d+)|(0+))$” //非正整数(负整数 + 0)
“^-[0-9]*[1-9][0-9]*$” //负整数
“^-?\\d+$” //整数
“^\\d+(\\.\\d+)?$” //非负浮点数(正浮点数 + 0)
“^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$” //正浮点数
“^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$” //非正浮点数(负浮点数 + 0)
“^(-?\\d+)(\\.\\d+)?$” //浮点数

2.使用 jQuery

使用 jQuery 库,您可以使用 $.isNumeric() 方法,它确定传递的值是否代表一个有效的数值。如果值是 number 或 string 类型并且可以强制转换为有限数,则返回 true。

const { JSDOM } = require("jsdom");
const { window } = new JSDOM();
var $ = require("jquery")(window);
 
const isNumber = n => $.isNumeric(n);
 
isNumber(1);                // true
isNumber(0);                // true
isNumber(-1);               // true
 
isNumber(new Number(1));    // true
 
isNumber(1.0);              // true
isNumber(1.1);              // true
isNumber(Math.PI);          // true
 
isNumber('1');              // true
isNumber('string');         // false
 
isNumber(NaN);              // false
isNumber(Infinity);         // false
isNumber(-Infinity);        // false
 
isNumber(true);             // false
isNumber(undefined)         // false
isNumber([1]);              // false

3. 使用 typeof 操作符

在纯 JavaScript 中,您可以使用 typeof 运算符,它返回一个指示操作数类型的字符串。您可以将其与严格的相等运算符一起使用,以检查原始数值。此外,要检查 Number 对象也是如此,您可以使用 instanceof 运算符,如下

const isNumber = n => (typeof(n) === 'number' || n instanceof Number);
 
isNumber(new Number(1));    // true
isNumber(0);                // true
isNumber(-1);               // true
 
isNumber(new Number(1));    // true
 
isNumber(1.0);              // true
isNumber(1.1);              // true
isNumber(Math.PI);          // true
                    
isNumber('1');              // false
isNumber('string');         // false
                    
isNumber(NaN);              // true
isNumber(Infinity);         // true
isNumber(-Infinity);        // true
                    
isNumber(true);             // false
isNumber(undefined);        // false
isNumber([1]);              // false

上述解决方案返回 true +Infinity-Infinity, 和 NaN (不是数字)。此外,它不适用于可以强制转换为有限数字的字符串。要处理此问题,请添加一些附加条件 isFinite() 和 isNaN() 方法。

const isNumber = n => (typeof(n) === 'number' || n instanceof Number ||
                    (typeof(n) === 'string' && !isNaN(n))) &&
                    isFinite(n);
 
isNumber(1);                // true
isNumber(0);                // true
isNumber(-1);               // true
 
isNumber(new Number(1));    // true
 
isNumber(1.0);              // true
isNumber(1.1);              // true
isNumber(Math.PI);          // true
                        
isNumber('1');              // true
isNumber('string');         // false
                        
isNumber(NaN);              // false
isNumber(Infinity);         // false
isNumber(-Infinity);        // false
                        
isNumber(true);             // false
isNumber(undefined);        // false
isNumber([1]);              // false

4. 使用一元加

最后,您可以检查数值 一元加号 (+) 运算符,如下图:

const isNumber = n => (n === +n);
 
isNumber(1);                // true
isNumber(0);                // true
isNumber(-1);               // true
 
isNumber(new Number(1));    // false
 
isNumber(1.0);              // true
isNumber(1.1);              // true
isNumber(Math.PI);          // true
                            
isNumber('1');              // false
isNumber('string');         // false
                            
isNumber(NaN);              // false
isNumber(Infinity);         // true
isNumber(-Infinity);        // true
                            
isNumber(true);             // false
isNumber(undefined);        // false
isNumber([1]);              // false

请注意,这不适用于 Number 反对,并考虑 +Infinity 和 -Infinity 作为数字。此外,它不处理可以强制转换为有限数字的字符串。这些可以以与之前的解决方案相同的方式处理。

5.使用isNaN()函数

isNaN()的缺点就在于 null、空格以及空串会被按照0来处理

NaN: Not a Number文章来源地址https://www.toymoban.com/news/detail-739205.html

/**
*判断是否是数字
*
**/
function isRealNum(val){
    // isNaN()函数 把空串 空格 以及NUll 按照0来处理 所以先去除
    // if(val === "" || val ==null){
        // return false;
    //}
//或者 直接判断  前提是要将值转为number类型
 if(typeof val !== 'number'){
     return false;
   }else{
 if(!isNaN(val)){
        return true;
    }else{
        return false;
    }

}


}

6.使用正则表达式 

/**
* 校验只要是数字(包含正负整数,0以及正负浮点数)就返回true
**/
function isNumber(val){

    var regPos = /^\d+(\.\d+)?$/; //非负浮点数
    var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数
    if(regPos.test(val) || regNeg.test(val)){
        return true;
    }else{
        return false;
    }

}



/**
* 校验正负正数就返回true
**/
function isIntNum(val){
    var regPos = / ^\d+$/; // 非负整数
    var regNeg = /^\-[1-9][0-9]*$/; // 负整数
    if(regPos.test(val) || regNeg.test(val)){
        return true;
    }else{
        return false;
    }
}

到了这里,关于JS判断输入值是否为正整数,判断变量是否为数字的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js判断日期是否合法

    function isDateValid(year, month, day) {   // 创建一个Date对象,将年、月、日作为参数传入   // 注意:在JavaScript中,月份是从0开始的,所以实际月份要减1   var date = new Date(year, month - 1, day);      // 使用getFullYear()、getMonth()和getDate()方法获取日期对象的年、月、日   var validYear = dat

    2024年02月11日
    浏览(52)
  • 小程序 js判断是否为空

    小程序 js判断是否为空 //判断字符是否为空的方法 const isEmpty = obj = {   if (typeof obj == \\\"undefined\\\" || obj == null || obj == \\\"\\\" || obj == \\\"undefined\\\"||obj.length==0) {     return true;   } else {     return false;   } } //判断字符是否为空的方法 const isNotEmpty = obj = {   if (

    2024年02月08日
    浏览(62)
  • JS判断点是否在线段上

    本文利用向量的点积和叉积来判断点是否在线段上。 基础知识补充 从零开始的高中数学——向量、向量的点积、带你一次搞懂点积(内积)、叉积(外积)、Unity游戏开发——向量运算(点乘和叉乘 点积可以用来判断两个向量的夹角,如果这个夹角是0或者180度,说明这个点

    2024年02月05日
    浏览(45)
  • node.js判断元素是否包括

    在Node.js中,可以使用Array.prototype.some()方法来判断数组中是否包含某个元素。下面是一个示例代码: const arr = [ { ‘@_android:name’: ‘com.eg.android.AlipayGphone’ }, { ‘@_android:name’: ‘com.eg.android.AlipayGphoneRC’ }, { ‘@_android:name’: ‘hk.alipay.wallet’ } ]; const elementToCheck = { ‘@_android:

    2024年02月14日
    浏览(52)
  • Js如何判断两个数组是否相等?

    日常开发,时不时会遇到需要判定2个数组是否相等的情况,需要实现考虑的场景有: 先判断长度,长度不等必然不等 元素位置 其他情况考虑 \\\'1\\\' 和 1 (Object的key是字符串, Map的key没有限制) NaN null 和 undefined 数组自带的方法,比较适合的有: every、some、filter、findIndex 。 这种

    2024年02月22日
    浏览(64)
  • js中判断一个对象是否存在

    一、Boolean()方法 用Boolean()方法可以将Js中的任意数据类型转为布尔值: 二、用于判断xx是否存在 js一般会自动执行Boolean()方法,我们可以借此判断某个对象在js当前的执行环境中知否存在。如: 又如,可以判断当前环境下某个对象是否存在。 在为一个元素绑定了某个事件后,

    2024年02月13日
    浏览(57)
  • js判断对象是否拥有某个key

    方法一 : \\\"key\\\" in obj ,结果为 false,表示不包含;否则表示包含 方法二 : obj.hasOwnProperty(\\\"key\\\") ,obj 表示对象,结果为 false 表示不包含;否则表示包含 这两种方法都可以用于检查对象是否包含指定的属性,但它们有一些区别。 “key” in obj: 这种方法使用 in 运算符来检查属

    2024年02月08日
    浏览(63)
  • 判断数组中的每个元素是否为正无穷大或负无穷大 numpy.isinf()

    【小白从小学Python、C、Java】 【计算机等级考试+500强双证书】 【Python-数据分析】 判断数组中的每个元素 是否为正无穷大或负无穷大 numpy.isinf() [太阳]选择题 请问关于以下代码的最后输出的是? import numpy as np a = np.array([-np.inf,0,np.inf]) print(\\\"【显示】a =\\\",a) print(\\\"【执行】np.i

    2024年02月08日
    浏览(51)
  • 在JS中如何判断两个对象是否相等

    在JavaScript中,判断两个对象是否相等有多种方法,取决于你对 相等 的定义以及对象属性的类型。以下是几种常见的方法:   1. 严格相等运算符 (===) 使用 === 运算符可以比较两个对象是否引用同一个对象。如果两个变量引用了同一个对象,则它们是相等的,否则它们是不相等

    2024年02月03日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包