js 判断一个值是否为数字

发布网友 发布时间:2022-04-19 19:13

我来回答

15个回答

热心网友 时间:2022-04-22 10:44

js有个函数 isNaN(val)//如果是数字则返回 false

使用时候
if(!isNaN(val)){
alert("是数字");
}else{
alert("不是数字");
}
js的验证不安全 如果禁止浏览器JavaScript 很容易就跳过去验证了

要是模拟提交 ,更容易攻破
嘿嘿 jsp中一定要验证哟

热心网友 时间:2022-04-22 12:02

第一种方法 isNaN
isNaN  返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字)。
NaN 即 Not a Number
isNaN(numValue)
但是如果numValue果是一个空串或是一个空格,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。
第二种方法 正则表达式
function checkRate(input) {
var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/
var nubmer = document.getElementById(input).value;
if (!re.test(nubmer)) {
alert("请输入数字");
document.getElementById(input).value = "";
return false;
}
}
第三种方法 利用parseFloat的返回值
/*----0313-------------验证数据 是数字:返回true;不是数字:返回false--------工具方法,不含有业务逻辑---------------------*/
function isNotANumber(inputData) {
//isNaN(inputData)不能判断空串或一个空格
//如果是一个空串或是一个空格,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。
if (parseFloat(inputData).toString() == "NaN") {
//alert("请输入数字……");注掉,放到调用时,由调用者弹出提示。
return false;
} else {
return true;
}
}
/*--End--0313-------------验证数据 是数字:返回true;不是数字:返回false---------------------------------*/

热心网友 时间:2022-04-22 13:36

<html>
<head>
<title>javascript之onsubmit</title>
<!--
onsubmit事件,在表单form提交时触发
通常用来验证输入内容的适配性
return true通过验证,允许提交
return false验证失败,拒绝提交
-->
    <script>
        //字符串中包含特定符号的个数
        function matchNumber(str,ch)
        {
        var n=0;
        for(var i=0;i<str.length;i++)
        {
        if(str.charAt(i)==ch)
        n++;
        }
        return n;
        }
        //通过字符集顺序来验证数字
        function isNumber(str)
        {
            var i=0;
            for(i=0;i<str.length;i++)
            {
                if((str.charAt(i)>='0'||str.charAt(i)=='.')&&(str.charAt(i)<='9'||str.charAt(i)=='.')&&matchNumber(str,'.')<=1)
                    continue;
                else
                    return false;
            }
            return true;
        }
        window.onload=function()
        {
            document.getElementById("form2").onsubmit=function()
            {
                alert("动态绑定,form2提交中...");
                if(isNumber(document.getElementById("word").value))
                {
                    alert("类型验证成功");
                    return true;
                }
                else
                {
                    alert("类型验证失败");
                    return false;
                }
            }
        }
    </script>
</head>

<body>
    <form action="http://www.baidu.com/" method="get" id="form2">
        <input type="text" id="word" name="word"/>
        <input type="submit"/>
    </form>
</body>
</html>

正则没有仔细研究过,就写个比较笨的方法吧,字符串中数字为  0~9,有特殊符号 .  +  -等。所以就依次判断呗(str.charAt(i)>='0'||str.charAt(i)=='.')&&(str.charAt(i)<='9'||str.charAt(i)=='.')   

(单个字符判断大于0或者等于'.')并且(单个字符小于9或者等于'.')并且特定的'.'字符个数小于等于1。就断定为正常的数字格式,若需要增加特定的符号,只需在括号内||条件并*个数即可。

例如

((str.charAt(i)>='0'||str.charAt(i)=='.'||str.charAt(i)=='-')&&(str.charAt(i)<='9'||str.charAt(i)=='.'||str.charAt(i)=='-')&&matchNumber(str,'.')<=1&&matchNumber(str,'-')<=1)

就新增了'-'减号

热心网友 时间:2022-04-22 15:28


//不解释了直接上代码。
$(function() {
   $("#*").blur(function(){
      var a= $(this).val()
      for(var i=0; i<a.length; i++)
      {
         var j = a.substring(i,i+1);
         if(!isNaN(j))        //或者 isNaN(j) == false
         {
            $("#DivFname").html("名字不能为空,并且不能包含数字!")
            return false;
         }
      }
   })
})
//这是判断变量里面的值不能存在数字!!!
//如果要判断第一个值,只要稍微修改一下就好了!!

热心网友 时间:2022-04-22 17:36

两种方法,第一种,用正则
var re = /^[0-9]+.?[0-9]*$/;   //判断字符串是否为数字
if (re.test(nubmer))

第二种,用内置的
var a = 'a'
isNaN(Number(a)) 
//number() 方法转换不成功会返回NAN  然后判断下,返回true,说明不是数字

热心网友 时间:2022-04-22 20:00

直接这么写:

<input id="price" placeholder="请输入金额" />
<input type="button" id="tj" value="提交" />
<script type="text/javascript">
var input=document.getElementById("price")
var btn=document.getElementById("tj")
btn.onclick=function(){
var price=input.value
if (isNaN(price*1)) {//判断是否为数字
alert("您输入的不是数字!")
} else {
alert("输入正确")
}
}
</script>

利用isNaN判定输入的是否为数字就好啦!如果需要*,再用if即可

切记,*1是必要的

热心网友 时间:2022-04-22 22:42

可以用正则来判断,使用下面的函数:

function checkRate(input) {
          var re = /^[0-9]+.?[0-9]*$/;   //判断字符串是否为数字     //判断正整数 /^[1-9]+[0-9]*]*$/  
          var nubmer = document.getElementById(input).value;
         if (!re.test(nubmer)) {
                alert("请输入数字");
                document.getElementById(input).value = "";
                return false;
          }
    }

热心网友 时间:2022-04-23 01:40

正则肯定是没问题的,你试试这个 ^[+-]?\d+(\.\d+)?$|^$|^(\d+|\-){7,}$

热心网友 时间:2022-04-23 04:54

写一个正则判断一下

function check(c)
{
    var r= /^[1-9]?[0-9]*\.[0-9]*$/;
    return r.test(c);
}

热心网友 时间:2022-04-23 08:26

可以使用isNaN()函数,该函数名称表示is not a number。
顾名思义,如果传入的参数不是数字,则返回true。
如果传入的参数是数字,则返回false。

热心网友 时间:2022-04-23 12:14

可以试试isNan这个函数

可以使用下面这个函数:

function isLegal(txt){

if(txt.indexOf(";")>0||txt.indexOf(",")>0){

return false;

}

var re = /^[0-9]+.?[0-9]*$/;

return re.test(txt);

}

热心网友 时间:2022-04-23 16:18

return isNaN('15...1')

热心网友 时间:2022-04-23 20:40

正则表达式
/d+\.{0-1}/d*

热心网友 时间:2022-04-24 01:18

var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
用这个这则校验一下

热心网友 时间:2022-04-24 06:12

/^\d+[\.\d+]?$/ 正则匹配
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com