InfoQ

交流

讨论:如果判断输入的内容是否是数字?

作者 babee 发布于 0000-00-00 分类:XML/HTML/CSS/Js

一个输入框,它的内容只能是数字,用javascript如何判断?



逛论坛交流如果判断输入的内容是否是数字?

加入书签
digg+,
reddit+,
del.icio.us+,
dzone+

6 条回复

回复

>[php] //正则表达式 var regDate=.. 发表人 Double_ycn 发表于 09月30日
>对了.说明一下判断电话的那个有问题.问.. 发表人 Double_ycn 发表于 09月30日
>var regInt=/^-?[1-9][d]*$/;//整数 .. 发表人 Double_ycn 发表于 09月30日
>判断的部分如果错了.大部分都是上边正.. 发表人 Double_ycn 发表于 09月30日
>/^(-|+)?[1-9][d]*(.[d]+)?$/; 发表人 windy2000 发表于 10月01日
  1. 返回顶部

    Re: 如果判断输入的内容是否是数字?

    2003年09月30日 发表人 Double_ycn

    >[php]
    //正则表达式
    var regDate=/^([1-9]{1}[d]{3})-([d]{2})-([0-4]{1}[d]{1})$/ //年份
    var regTime=/^([d]{2})[d]{2})[d]{2})$/;//时间
    var regTel=/^(0[d]{2,3}[-])?([d]{2,3}[-])?([d]{7,8})$/;//常用的电话

    var regEmail=/^([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$/;//Email
    var regNum=/^[1-9][d]*((.?[d])[d]*)?$/;//数字
    var regInt=/^-?[1-9][d]*$/;//整数
    //^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$ 数字
    //^[-+]?d+(.d+)?$

    //判断数字
    //返回值:正确:true 错误:false
    function isNum(num){
    flag=regNum.test(num);
    if(flag) return true;
    return false;
    }

    //整数的确认;
    //返回值:正确 true 错误 false
    function isInt(theInt){
    var flag=regInt.test(theInt);
    if(flag) return true;
    return false;
    }

    //判断Email地址的的合理性
    //返回值:正确:true 错误:false
    function isEmail(eStr){
    flag=regEmail.test(eStr);
    if(flag) return true;
    return false;
    }

    //获取客户端的当前时间
    var dDate=new Date();
    var dYear=dDate.getFullYear();
    var dMonth=FillNumber(dDate.getMonth()+1);
    var dDay=FillNumber(dDate.getDate());
    var dHours=FillNumber(dDate.getHours());
    var dMinutes=FillNumber(dDate.getMinutes());
    var dSeconds=FillNumber(dDate.getSeconds());

    //返回当前时间
    function hms(){
    hm=FillNumber(new Date().getHours())+":"+FillNumber(new Date().getMinutes())+":"+FillNumber(new Date().getSeconds());
    return hm;
    }

    // 日期的确认 isDate()
    // 返回值:正确 true, 错误 false
    function isDate (theStr) {

    var dArray=theStr.match(regDate); //得到数组
    if (dArray==null){
    return (false);
    }
    else { //把年份月份日期分别付给变量
    var y = dArray[1];
    var m = dArray[2];
    var d = dArray[3];

    var maxDays = 31; //最长天数

    if (m>12 || m<1 ) return false;//判断月份是否在1-12之间
    if (m == 4 || m == 6 || m == 9 || m == 11) maxDays = 30;
    else if(m == 2) {
    if ( y % 4 > 0) maxDays = 28;
    else if ( y % 100 == 0 && y % 400 > 0) maxDays = 28;
    else maxDays = 29;
    }
    if (d>maxDays || d<1){//判断日期是否正确
    return false;
    }
    else {
    return true;
    }
    }
    }

    // 时间确认 isTime()
    // 返回值:正确 true, 错误 false
    function isTime (theStr) {
    var tArray=theStr.match(regTime);
    if(tArray==null) return false;
    var h=tArray[1];
    var m=tArray[2];
    var s=tArray[3];
    if( s>59 || s<0) return false;
    if(m>59 || m<0) return false;
    if(h>23||h<0) return false;
    return true;
    }


    //为1位日期数字加0
    function FillNumber(num)
    {
    switch (num)
    {
    case 0 :
    ReturnNum="00";
    break;
    case 1 :
    ReturnNum="01";
    break;
    case 2 :
    ReturnNum="02";
    break;
    case 3 :
    ReturnNum="03";
    break;
    case 4 :
    ReturnNum="04";
    break;
    case 5 :
    ReturnNum="05";
    break;
    case 6 :
    ReturnNum="06";
    break;
    case 7 :
    ReturnNum="07";
    break;
    case 8 :
    ReturnNum="08";
    break;
    case 9 :
    ReturnNum="09";
    break;
    default :
    ReturnNum=num;
    }

    return ReturnNum;
    }


    //判断电话号码的合理性
    //正确: True 错误: False
    function isTel(str){
    var flag=regTel.test(str);
    if (flag) return true;
    return false;
    }

    //时间+字符串函数
    //三个参数:interval:决定往哪加:h:加在小时上,m:加在分钟上,S:加在秒钟上。
    //number:决定加多少;time:时间字符串。
    function timeAdd(interval,number,time){
    //alert(time);
    var flag=isTime(time);//判断time是否是时间字符串

    if (flag){
    var tArray=time.match(regTime);
    var h=tArray[1];
    var m=tArray[2];
    var s=tArray[3];

    switch (interval){
    case "h":
    var h=eval(number+"+"+h);
    var hCarry=Math.floor(h/24);//floor:返回小于等于其数字参数的最大整数
    h=FillNumber(eval(h+"-"+24+"*"+hCarry));
    h=h+":"+m+":"+s;
    return h;
    break;
    case "m":
    var m=eval(m+"+"+number);
    var mCarry=Math.floor(m/60);
    m=FillNumber(eval(m+"-"+60+"*"+mCarry))

    h=eval(h+"+"+mCarry); //加上从分钟上的进位。
    var hCarry=Math.floor(h/24);
    h=FillNumber(eval(h+"-"+24+"*"+hCarry));

    m=h+":"+m+":"+s;
    return m;
    break;
    case "s":
    var s=eval(s+"+"+number);
    var sCarry=Math.floor(s/60);
    s=FillNumber(eval(s+"-"+60+"*"+sCarry)); //得到秒数

    m=eval(m+"+"+sCarry); //加上秒钟进位
    var mCarry=Math.floor(m/60);
    m=FillNumber(eval(m+"-"+60+"*"+mCarry)); //得到分钟数

    h=eval(h+"+"+mCarry); //加上从分钟上的进位。
    var hCarry=Math.floor(h/24);
    h=FillNumber(eval(h+"-"+24+"*"+hCarry)); //得到小时数

    s=h+":"+m+":"+s; //得到最后结果
    return s;
    break;
    default:
    alert("参数错误,请认真检查");
    }
    }
    else{
    alert("时间字符串错误");
    }
    }

    //得到字符串的长度*汉字为2个字符
    function strlen(str)
    {
    len=0;
    n=str.length;
    for(i=0;i {
    if(str.charCodeAt(i)>255){
    len+=2;
    }
    else{
    len+=1;
    }
    }
    return len;
    }

    //返回客户端的屏幕分辩率
    function sizePage(){
    if ((screen.width == 640) && (screen.height == 480))
    size = "640 x 480";
    else if ((screen.width == 800) && (screen.height == 600))
    size = "800 x 600";
    else if ((screen.width == 1024) && (screen.height == 768))
    size = "1024 x 768";
    else size = "the default 640 x 480";
    //alert("经系统检测,你的屏幕分辨率为 " + size + ",你的显示器适于....");
    return size;
    }
    [/php]
    自己看吧.里边有判断输入的是不是数字的.

  2. 返回顶部

    Re: 如果判断输入的内容是否是数字?

    2003年09月30日 发表人 Double_ycn

    >对了.说明一下判断电话的那个有问题.问题在正则上.如果你有好的正则把那个正则换了就ok了.其他的暂时还没发现什么问题.嘿嘿.

  3. >有一个问题呀,就是那个判断整数的,如果输入一位数,可以正确的判断提字母还是数字,如果输入多位数字,它就判断不出来了。

  4. 返回顶部

    Re: 如果判断输入的内容是否是数字?

    2003年09月30日 发表人 Double_ycn

    >var regInt=/^-?[1-9][d]*$/;//整数
    呵呵.正则错了.换成这个.老兄你也应该去看看正则吧.很用用的.

  5. 返回顶部

    Re: 如果判断输入的内容是否是数字?

    2003年09月30日 发表人 Double_ycn

    >判断的部分如果错了.大部分都是上边正则的部分写的错了.改那个就行了.

  6. 返回顶部

    Re: 如果判断输入的内容是否是数字?

    2003年10月01日 发表人 windy2000

    >/^(-|+)?[1-9][d]*(.[d]+)?$/;




  7. 我有话要讲:(可以匿名发表, 发广告的有多远请滚多远!!!)

    昵称: 请输入验证码:


抢着回答

请各位进来看看,我的这个问题是怎么回...

我的机器不知道出什么毛病了。打开图像说有错误。具体情况如下 ...

求教算法问题

n个数组求与 例如:有4个数组分别是 数组1:1 2 3 4 5 6 ...

这句什么意思?

[php]if ($layer 1)[/php]

请教关于error_reporting

手册上说:用error_reporting(0);可以关闭错误的显示。我不想把d...

关于servername问题?

我把httpd.conf里面的servername中的localhost改为了:mycggo,但...

林俊杰=就是我

就是我

求救,php往oracle8.1.6写入数据错误!

Warning: OCILobWrite: ORA-01693: max # extents (10) 已在 lob...

交些有项目开发的朋友

本人工作三年,其间VC/C/C++有三年开发经验,PHP/MYSQL有一年开发...

一个简单的问题

是这样的,在PHP里有没有这样的函数,对小数点后第三位四舍五入,...

怎样批量删除纪录?????

例如:我想一次删除id1-10的纪录怎样操作???

[]