js 判断一个值是否为数字

我在做一个JSP页面,有一个text需要输入一个金额,我现在试用了正则表达式来限制这个text只能输入数字和小数点,但是会有这样的情况比如用户输入了15...1,这个是可以输入的,但这不是一个正确的数字格式,插入数据库会出错的,现在请问怎么在JS里面判断一下这个"15...1"它不是正确的数字,让它返回一个false,如果是"15.1"这样正确的数字,就让他返回true.

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

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

要是模拟提交 ,更容易攻破
嘿嘿 jsp中一定要验证哟
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-24
第一种方法 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---------------------------------*/
第2个回答  2017-10-23
<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="
        <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)

就新增了'-'减号

第3个回答  2017-08-24

//不解释了直接上代码。
$(function() {
   $("#fuck").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;
         }
      }
   })
})
//这是判断变量里面的值不能存在数字!!!
//如果要判断第一个值,只要稍微修改一下就好了!!

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

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

相关了解……

你可能感兴趣的内容

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