Javascript如何判断一个变量是数字类型?

作者&投稿:呼伊 (若有异议请与网页底部的电邮联系)
javascript 中怎么判断为数字类型~

javascript中判断变量是否为数字类型的方法有两种:
方法一:
function IsNum(s)
{
if(s!=null){
var r,re;
re = /\d*/i; //\d表示数字,*表示匹配多个数字
r = s.match(re);
return (r==s)?true:false;
}
return false;
}
方法二:
function IsNum(s)
{
if (s!=null && s!="")
{
return !isNaN(s);
}
return false;
}
两种方法都可以检查参数是否为数字。
第一种使用正则表达式检查,对于检查的内容更加灵活,但显得麻烦;
第二种方法,直接调用系统的isNaN() ,对所有数字均有效,简单快捷。

1、js判断变量是否为数字的办法,主要是js里面的isNaN函数的用法,示例代码:
1. document.write(isNaN(123));//false
2. document.write(isNaN(-1.23));//false
3. document.write(isNaN(5-2));//false
4. document.write(isNaN(0));//false
5. document.write(isNaN("Hello"));//true
6. document.write(isNaN("2005/12/12"));//true
7. document.write(isNaN("6/2"));//true
8. document.write(isNaN("3"));//false

2、定义和用法:isNaN() 函数用于检查其参数是否是非数字值。
3、语法:isNaN(x) x 必需。要检测的值。
4、返回值:如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。
5、说明:isNaN() 函数可用于判断其参数是否是 NaN,该值表示一个非法的数字(比如被 0 除后得到的结果)。
6、如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。正因为如此,isNaN() 函数是必需的。

最好的是用js正则表达式

正则表达式是一种通用的标准,大部分计算机语言都支持正则表达式,包括as3,这里转摘出了一些常用的正则表达式语句,大家用到的时候就不用自己写了

^\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)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匹配负浮点数
^(-?\d+)(\.\d+)?$ //匹配浮点数
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ //匹配email地址
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ //匹配url

匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/>|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$
下表是元字符及其在正则表达式上下文中的行为的一个完整列表:
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。
* 匹配前面的子表达式零次或多次。
+ 匹配前面的子表达式一次或多次。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。
{n} n 是一个非负整数,匹配确定的n 次。
{n,} n 是一个非负整数,至少匹配n 次。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。
? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。
. 匹配除 "\n" 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符,请使用象 ’[.\n]’ 的模式。
(pattern) 匹配pattern 并获取这一匹配。
(?:pattern) 匹配pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。
(?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
(?!pattern) 负向预查,与(?=pattern)作用相反
x|y 匹配 x 或 y。
[xyz] 字符集合。
[^xyz] 负值字符集合。
[a-z] 字符范围,匹配指定范围内的任意字符。
[^a-z] 负值字符范围,匹配任何不在指定范围内的任意字符。
\b 匹配一个单词边界,也就是指单词和空格间的位置。
\B 匹配非单词边界。
\cx 匹配由x指明的控制字符。
\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
\w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。
\W 匹配任何非单词字符。等价于 ’[^A-Za-z0-9_]’。
\xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。
\num 匹配 num,其中num是一个正整数。对所获取的匹配的引用。
\n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
\nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。
\nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八

明白?

isNaN()不能判断一个变量是否为数字类型,isNaN(123)值为false,isNaN('123')值也为false。
isNaN() 的实际作用跟它的名字isNaN并不一致,isNaN(NaN)值为true,isNaN(Number("xyz"))值为true,isNaN(“abc”)值为true,isNaN(123/0)值为false,所以它实际是将不能转换成number类型的其他类型及其自身NaN都判断为true,而除了其自身NaN外所有的number类型都判断为false(NaN的类型也是number),能转换成number类型的其他类型也判断为false,比如‘123’类型是string,但判断为false。
typeof(num)=="number" 较为准确,但NaN也是number类型,Number("xyz")也是number类型,如果你只要区分123跟‘123’,那就没什么问题了,可以用typeof(num)==="number"。 如果要排除除数为0的情况,要再判断(num!==Infinity),即(typeof(num)=="number")&&(num!==Infinity)。
再全面一点:(typeof(num)==="number")&&(num!==Infinity)&&!isNaN(num)

资料:
Number.isNaN()已经被添加到了ECMAScript 6中,Firefox已经实现了。
代码如下:
Number.isNaN = function (value) {
return typeof value === 'number' && isNaN(value);
};

就是判断变量是不是数字 用javascript的内置函数 isNaN()就可以了

isNaN()函数检验参数是否是一个数字 ,要注意的是不是数字返回true

是的话返回false

<SCRIPT LANGUAGE="JavaScript">
var x="abc";
if(isNaN(x))
{
alert(x+"不是数字");
}else
{
alert(x+"是数字");
}
</SCRIPT>

<script>
var num=110
if (typeof(num)=="number") alert('此为数字')
</script>

用typeof(变量)


JavaScript和java有什么区别
JavaScript和Java HD是两种在编程领域广泛应用的语言,它们的结合为我们带来了编程世界的高清奇迹。让我们一起来探索JavaScript和Java HD的特点、应用以及它们在编程领域中的价值所在。JavaScript作为一种脚本语言,广泛应用于Web开发领域。它能够为网页添加各种交互效果,使用户界面更加生动、丰富。JavaScript具有...

如何正确学习JavaScript
如今使用Javascript框架和插件构建的Web应用越来越多,并且已经能够实现3D动画特效、可交互的信息图等很有趣又实用的效果,如果想要做Web开发,Javascript是必需品。目前自己的知识库中只对HTML和CSS这类非编程类的语言比较熟悉且能熟练应用。曾经有一段时间下了不少功夫在Processing这门基于Java再编译的语法...

“JScript”和“JAVAScript”是一回事吗?
在编程语言的领域中,"JScript"常常被用作"JavaScript"的缩写形式,中文直译即为"JavaScript"。这个术语主要应用于软件开发,特别是在网页脚本和浏览器环境中。"JScript"的全称是"JavaScript",这是一种轻量级的脚本语言,常用于网页动态交互和网页应用程序的开发。该缩写词的英文单词在软件开发中具有较高的...

为什么我打开的网页不能用JavaScript?
原因:电脑检测到访问的网页存在不安全因素,如果想继续访问,需要进行相关的设置。具体步骤如下:1、首先找到电脑左上角的“Safari”选项,并点击打开它。2、然后在弹出来的菜单栏窗口中,点击打开“偏好设置”设置选项。3、然后在弹出来的窗口中点击打开“安全性”设置选项,取消打勾“启用JavaScript”和...

JavaScript有哪些分类?
JavaScript作为一种广泛应用于Web开发的编程语言,经过多年的发展已经日渐成熟,并形成了多种分类。以下是对JAVASCRIPT的成熟分类的探索:核心语言分类:JavaScript的核心语言分类主要指的是标准的ECMAScript规范。从ECMAScript 3到最新的ECMAScript 2022,JavaScript的核心语言得到了不断的完善和扩充,包括新增的...

javascriptjavascript成熟分类
JavaScript语言是一种非常成熟的编程语言,已经发展出了许多分类。下面将介绍一些关键的JavaScript分类。1. 通用目的编程语言:JavaScript是一种通用目的的编程语言,可以广泛应用于Web开发、移动应用开发、游戏开发等领域。它的灵活性和易用性使其成为众多开发者的首选语言。2. 前端开发:作为Web开发中不可或...

javascript是干什么的
JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。javascript是一种解释类型的语言,跟...

javascript:;与javascript:;的区别是什么?
javascript:是表示在触发默认动作时,执行一段JavaScript代码,而 javascript:; 表示什么都不执行,这样点击时就没有任何反应。href:URL 规定链接的目标 URL。 这个a标签的话就是指点击后跳转到百度首页 点击后是不会跳转的,一般用于开发时页面还未完成。

为什么JavaScript不可用?
如果 JavaScript 不可用,通常意味着您的浏览器或网络连接无法访问 JavaScript 引擎或库。以下是一些可能导致 JavaScript 不可用的常见原因和解决方法:浏览器阻止了 JavaScript 运行:某些浏览器可能通过安全设置阻止了 JavaScript 运行。您可以尝试禁用浏览器安全设置或更改浏览器设置以允许 JavaScript 运行。JavaS...

javascript是什么
JavaScript是一种编程语言。JavaScript是一种广泛用于网页开发的脚本语言,也是一种功能强大的编程语言。它主要用于网页的交互性设计和动态内容的更新。下面详细解释JavaScript的特点和用途。一、JavaScript的基本定义 JavaScript是一种解释型语言,最初由Netscape公司的Brendan Eich设计,其最初目的是为网页提供动态...

郁南县18818611957: Javascript如何判断一个变量是普通变量还是数组还是对象? -
阮祥洛伐: 1、使用typeof操作符检测变量类型 数组、Null、Object 为 object 类型 字符串 为 string 类型 true和false 为 boolean 类型 整型、浮点型为 number 类型 2、如果要区分数组和非数组对象,需要使用构造函数来判断 if(arr.constructor==Array)// arr 是数组 else// arr 不是数组

郁南县18818611957: Javascript如何判断一个变量是数字类型?
阮祥洛伐: 就是判断变量是不是数字 用javascript的内置函数 isNaN()就可以了 isNaN()函数检验参数是否是一个数字 ,要注意的是不是数字返回true 是的话返回false &lt;SCRIPT LANGUAGE="JavaScript"&gt; var x="abc"; if(isNaN(x)) { alert(x+"不是数字"); }else { alert(x+"是数字"); } &lt;/SCRIPT&gt;

郁南县18818611957: 请问js怎么判断一个变量是对象还是数组呢? -
阮祥洛伐: 在JavaScript中所有数据类型严格意义上都是对象,但实际使用中我们还是有类型之分,如果要判断一个变量是数组还是对象使用typeof搞不定,因为它全都返回object<br><br>var o = { 'name':'lee' }; <br>var a = ['reg','blue']; <br><br>var ...

郁南县18818611957: 如何js判断一个变量是字符串变量 -
阮祥洛伐: 思路:获取变量→使用字符串拼接符号(+)拼接字符串.下面实例演示:从文本框获取两个字符串变量,拼接后输出到另一个文本框. 1、HTML结构 变量1:<input type="text" id="test1"/><br> 变量2:<input type="text" id="test2"/><br> ...

郁南县18818611957: 在javascript中如何判断一个变量为空或者undefine -
阮祥洛伐: function chkVal(id){<br> obj=document.getElementById("id");<br> if(obj.value==undefined){<br> alert("未赋值");<br> }else if(obj.value==""){<br> alert("值为空");<br> }else{<br> alert("对象"+id+"的值为:"+obj.value);<br>...

郁南县18818611957: 急!javascript中如何写关于判断一个变量发生是否改变? -
阮祥洛伐: 找一个全局变量存放a上一次改变前的值,等a改变后(可能),再比较两个变量

郁南县18818611957: js中判断某一个变量是否位于数组中?比如:var a = '3'; -
阮祥洛伐: 通过循环数组的方式,进行比较变量值是否在数组中. 1、定一个数组 var arr = ['1','3','a'];//定义一个数组2、循环判断 for(var i=0;i<arr.length;i++){//通过length属性获取数组长度,循环遍历数组元素 if(arr[i]==a){//通过==比较数组元素是否和变量a的值相等 //在数组中存在 } }

郁南县18818611957: js判断一个变量或对象是否存在 -
阮祥洛伐: //判断变量i是否存在 typeof(i)=="undefined": 未定义 //原始JS判断一个id为div的元素是否存在 if(document.getElementById("div)){//此时div存在}//jquery判断一个元素是否存在

郁南县18818611957: js中怎么判定一个变量是否定义 -
阮祥洛伐: 判断变量是否初始化 var a; if(a){ alert("已初始化") }else{ alert("未初始化") } 确定当 a = false,判断是错误的 判断变量是否定义: if(b){ alert("已定义") }else{ alert("未定义") } 确定当 b = false,判断是错误的 一般都是这么判断的

郁南县18818611957: js判断变量是否赋值(存在) -
阮祥洛伐: 如果是判断变量是否存在的话可以直接:if('变量名'){ }//这样判断变量存在未true,不存在为false;如果是判断有没有值:if(变量名 == '' || 变量名 == null){ }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网