jQuery MiniUI

 找回密码
 立即注册
查看: 5370|回复: 5
打印 上一主题 下一主题

验证身分证 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2012-6-28 17:21:08 |只看该作者 |倒序浏览
vtype="float;rangeLength:15,18"
这样验证不对吗?

只要前面是0 他就会出错,而且 输入了18个数字后他提示输入整数,郁闷

Rank: 9Rank: 9Rank: 9

沙发
发表于 2012-6-28 18:53:46 |只看该作者
在IE低版本下,js的parseFloat不支持如此长的位数。
解决的办法是,使用onvalidation自定义验证函数,使用正则来验证数字,把这个问题特殊处理下就可以了。

Rank: 2

板凳
发表于 2012-6-28 20:05:57 |只看该作者
niko 发表于 2012-6-28 18:53
在IE低版本下,js的parseFloat不支持如此长的位数。
解决的办法是,使用onvalidation自定义验证函数,使用 ...

能整个身份证的来参考下吗,没写过 不知道从何下手啊~!

Rank: 9Rank: 9Rank: 9

地板
发表于 2012-6-28 21:34:00 |只看该作者
<input class="mini-textbox" onvalidation="onIDCardsValidation" />
function onIDCardsValidation(e) {
    if (e.isValid) {
        var pattern = /\d*/;
        if (e.value.length < 15 || e.value.length > 18 || pattern.test(e.value) == false) {
            e.errorText = "必须输入15~18位数字";
            e.isValid = false;
        }
    }
}

Rank: 2

5#
发表于 2012-6-28 23:17:55 |只看该作者
18位身份证最后一位可以是x
但是15位就必须全是数字
所以要这么写
        function onIDCardsValidation(e) {
            if (e.isValid) {
                if (isIDCardsValidation(e.value) == false) {
                    e.errorText = "必须正确的身份证号码";
                    e.isValid = false;
                }
            }
        }
        function isIDCardsValidation(v) {
            var reg = new RegExp("^(\\d{15}$)|(\\d{17}([0-9]|[xX])$)");
            if (reg.test(v)) {
                    return true;
            }
            return false;
        }

Rank: 9Rank: 9Rank: 9

6#
发表于 2012-6-29 07:41:05 |只看该作者

Archiver|普加软件

GMT+8, 2024-11-26 03:41 , Processed in 1.065362 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部