想知道js中的判断是否是数字的函数?

JavaScript09

想知道js中的判断是否是数字的函数?,第1张

javaScript判断一个字符串中是否包括有数字和"-",在一些表单提交的地方,这是比较有用的常规判断,这里收集有几种不同的方法,包括普通的JS验证法、正则表达式法,另外还有判断是否为浮点数的js函数,在最后还将简要介绍下isNAN函数的使用方法和例子:

正则表达式方法判断是否为数字,包括判断正整数:

function checkRate(input)

{

var re = /^[0-9]+.?[0-9]*$/ //判断字符串是否为数字,//若判断正整数,则后边是:/^[1-9]+[0-9]*]*$/

if (!re.test(input.rate.value))

{

alert("请输入数字(例:0.02)")

input.rate.focus()

return false

}

}

普通的JS函数方式:

function BASEisNotNum(theNum)

{

if (BASEtrim(theNum)=="")

return true

for(var i=0i<theNum.lengthi++){

oneNum=theNum.substring(i,i+1)

if (oneNum<"0" || oneNum>"9")

return true

}

return false

11}

判断是否是正数,也就是正整数:

function BASEisNotInt(theInt)

{

theInt=BASEtrim(theInt)

if ((theInt.length>1 &&theInt.substring(0,1)=="0") || BASEisNotNum(theInt)){

return true

}

return false

}

判断字符串是是否是数字和其它符号组成,比如“-”:

function ismonth(str)

{

for(ilen=0ilen<str.lengthilen++)

{

if(str.charAt(ilen) <'0' || str.charAt(ilen) >'9' )

{

if((str.charAt(ilen)!='-'))

return false

}

}

11return true

}

判断是否为浮点数:

view sourceprint?

function BASEisNotFloat(theFloat)

{

len=theFloat.length

dotNum=0

if (len==0)

return true

for(var i=0i<leni++){

oneNum=theFloat.substring(i,i+1)

if (oneNum==".")

dotNum++

11if ( ((oneNum<"0" || oneNum>"9") &&oneNum!=".") || dotNum>1)

return true

}

if (len>1 &&theFloat.substring(0,1)=="0"){

if (theFloat.substring(1,2)!=".")

return true

}

return false

关于javascript的isNaN 函数:用法规则:isNaN(expression:Object) : Boolean。计算参数,如果值为 NaN(非数字),则返回 true。此函数可用于检查一个数学表达式是否成功地计算为一个数字。

可用性:Flash Player 5;ActionScript 1.0;参数expression:Object - 要计算的布尔值、变量或其它表达式。返回Boolean -布尔值。在提交表单中经常是这样用的:

<script>

if(isNaN(document.login.imgcode.value)){

alert('验证码不是数字!')

document.login.imgcode.focus()

return false

}

</script>

你怎么有这样的需求....

直接的方法做不到。

但是可以使用技巧性的东西。

我的思路如下:

假如你要判断一个DIV是否被hidden过,就在调用方法隐藏DIV的时候给DIV新增一个属性来标识该DIV有被隐藏过的操作。

下次操作该DIV的时候,就去取自定义的属性,如果有那就说明你曾经隐藏了该DIV。

PS: html标签可以随意添加自定义属性。

我给出例子吧。

<DIV id="div" eventType=""></DIV>

// js code

$("#div").click(function() {

var et = $(this).attr("eventType")

$(this).attr("eventType", et+'',1")// 先得到eventType值, 然后定义1为click操作。使用 + 可以记录其他的操作。你可以定义dbclick为2.那么eventType就可以为1,2.

if(et.indexOf("1") >0) {

alert("DIV被click过")

}

})

使用jQuery队列就行,执行原理先进先出,按顺序执行。

jQuery(document).queue("message",function () { 

        jQuery.ajax({

            url:ajaxurl,

            data:{ action:"Show",param:Math.random() }, 

            type:"post",

            dataType:"json",

            success:function(jsonNotice){

                var obj = jsonNotice

                jQuery("#messagebody").empty()

                jQuery.each(obj ,function(i, n) {

                    alert(‘sds’);

                })

                jQuery(document).dequeue("message")

            },

            error:function(){

                //alert("error")

                jQuery(document).queue("message", [] )

            }

        })

    })

    jQuery(document).queue("message",function () { 

        jQuery.ajax({

            url:ajaxurl,

            data:{ action:"returnCount",param:Math.random() }, 

            type:"post",

            success:function(str){

                PgCount = str

                jQuery(document).dequeue("message")

            },

            error:function(){

                jQuery(document).queue("message", [] )

            }

        })

     })

      //分页DIV

      jQuery(document).queue("message",function () { 

        if(PgCount>0)

        {

            jQuery("#null_face").hide()

            jQuery("#messagepage").pagination(PgCount, {

                callback: pageselectCallback,

                prev_text: '上一页',

                next_text: '下一页',

                items_per_page:5,

                num_display_entries:6,

                current_page:pageindex,

                num_edge_entries:2

            })

            jQuery(document).dequeue("message")

        }

        else

        {

            jQuery("#null_face").show()

            jQuery("#messagepage").empty()

        }

      })

        jQuery(document).dequeue("message")   //触发队列

    }

    

    这是一个例子