帮忙详细解释下这个正则吧的,我看的有点搞不清头绪var pre = /^[0-9]/gm;
if(!pre.test(uin.value.replace(/^0+/,"")))

解决方案 »

  1.   

    uin 去掉至少一个0开头后的值 是否不是一个数字
    感觉意义不大啊   window.onload = function(){
        var pre = /^[0-9]/gm;
        var s =['003','000','00a','a','3','33','0045'];
        for(i=0;i<s.length;i++)
        {
          alert(s[i]+":"+!pre.test(s[i].replace(/^0+/,"")))
        }
      }
      

  2.   


    var pre = /^[0-9]/gm; //以任何数字开头的正则
    if(!pre.test(uin.value.replace(/^0+/,""))) 
    //uni是一个标签元素吧//uin.value.replace(/^0+/,"")这个意思就是把uni元素值里的所有以开头为0的部分全部替换掉,也就是删除!
    //假设uni的值为000123abc,替换后就变成了123abc
    //pre.test('123abc')结果为真,因为123abc是以数字开头的,最后还有一个!取反就为假了!
    //再举个例子,如果uni的值为00abc,那么替换后就是abc,因为不是数字开头的,所以结果为假,再经过!就是真,整体结果为真!
      

  3.   

    首先,uin.value.replace(/^0+/,""),把字符串开头的0统统去掉.其次,这个正则当中的g很鸡肋,var pre = /^[0-9]/gm;既然是test,竟然还加了一个g最后,他做了一件事,就是验证uin.value这个字符串中有没有以数字开头的行(第一行以除0以外的数字开头)
    (很拗口是吧),怀疑一下,写这个正则的目的
      

  4.   

    thks各位,这个是财付通网页,当企业用户登录时的正则过滤
      

  5.   

    我把这段代码防止我自己的页面中测试,当用户名为1234567890sss时,循环测试,有时能通过,有时不能通过,而且这两种情况还交替进行,不知我的程序错在哪了?if (!/([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/.test(cft_account))
    {
    var uin_len = cft_account.replace(/^\s+/g, "").replace(/\s+$/g, "").length;
    var pre = /^[0-9]/gm;
        if(!pre.test(cft_account.replace(/^0+/,"")))
    {
        alert("财付通账号格式不正确。");
        alert(cft_account);
    return false;
    }
    else if(uin_len != 10 && uin_len != 13)
    {
    alert("财付通账号格式不正确。(请输入10位或13位的账号)");
    return false;
    }
    }
      

  6.   

    找到问题症结了,这个让人蛋疼的“g”标识,
    http://blog.csdn.net/blackpark/archive/2007/05/23/1622483.aspx
      

  7.   

    var pre = /^[0-9]/gm; //以任何数字开头的正则