日期:2014-05-17  浏览次数:20556 次

大家帮忙看下,这个javascript正则的问题出在哪?
我把这段代码放在我自己的页面中测试,当用户名为1234567890sss时,循环测试,账号格式有时能通过,有时不能通过,而且这两种情况还交替进行,不知我的程序错在哪了?
JScript code

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;
            }
        }



问题好像出在这个语句上
JScript code

if(!pre.test(cft_account.replace(/^0+/,"")))



------解决方案--------------------
var pre = /^[0-9]/gm;

这个应该是:var pre = /^[1-9]/gm; 吧