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+]?$/ 正则匹配