项目管理软件手机版,长沙官网seo推广,网站建设岗位工作范围,怎么选择宜昌网站建设这篇文章将讨论如何确定一个变量是否代表 JavaScript 中的有效数字。
1.JS中的test是原来是JS中检测字符串中是否存在的一种模式#xff0c;JS输入值是否为判断正整数代码#xff1a;
script type”text/javascript” function test() { var num document.getElem…这篇文章将讨论如何确定一个变量是否代表 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); // trueisNumber(new Number(1)); // trueisNumber(1.0); // true
isNumber(1.1); // true
isNumber(Math.PI); // trueisNumber(1); // true
isNumber(string); // falseisNumber(NaN); // false
isNumber(Infinity); // false
isNumber(-Infinity); // falseisNumber(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); // trueisNumber(new Number(1)); // trueisNumber(1.0); // true
isNumber(1.1); // true
isNumber(Math.PI); // trueisNumber(1); // false
isNumber(string); // falseisNumber(NaN); // true
isNumber(Infinity); // true
isNumber(-Infinity); // trueisNumber(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); // trueisNumber(new Number(1)); // trueisNumber(1.0); // true
isNumber(1.1); // true
isNumber(Math.PI); // trueisNumber(1); // true
isNumber(string); // falseisNumber(NaN); // false
isNumber(Infinity); // false
isNumber(-Infinity); // falseisNumber(true); // false
isNumber(undefined); // false
isNumber([1]); // false
4. 使用一元加
最后您可以检查数值 一元加号 () 运算符如下图
const isNumber n (n n);isNumber(1); // true
isNumber(0); // true
isNumber(-1); // trueisNumber(new Number(1)); // falseisNumber(1.0); // true
isNumber(1.1); // true
isNumber(Math.PI); // trueisNumber(1); // false
isNumber(string); // falseisNumber(NaN); // false
isNumber(Infinity); // true
isNumber(-Infinity); // trueisNumber(true); // false
isNumber(undefined); // false
isNumber([1]); // false
请注意这不适用于 Number 反对并考虑 Infinity 和 -Infinity 作为数字。此外它不处理可以强制转换为有限数字的字符串。这些可以以与之前的解决方案相同的方式处理。 5.使用isNaN()函数
isNaN()的缺点就在于 null、空格以及空串会被按照0来处理
NaN: Not a Number
/**
*判断是否是数字
*
**/
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;}
}