评论:Easy validate修改版  [查看原文]

所属分类:输入-验证

 28690  320  4
当前第1页 / 共1页
    黄帅0
    2019/10/23 10:35:00
    这个验证社会统一信用代码 正则应该怎么写啊
        areyouOk1
        2019/10/23 11:06:28

        自己加一个,社会统一信用代码正则

        function CheckSocialCreditCode(Code) {
            var patrn = /^[0-9A-Z]+$/;
            //18位校验及大写校验
            if ((Code.length != 18) || (patrn.test(Code) == false)) {
                console.info("不是有效的统一社会信用编码!");
                return false;
            }
            else {
                var Ancode;//统一社会信用代码的每一个值
                var Ancodevalue;//统一社会信用代码每一个值的权重
                var total = 0;
                var weightedfactors = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];//加权因子
                var str = '0123456789ABCDEFGHJKLMNPQRTUWXY';
                //不用I、O、S、V、Z
                for (var i = 0; i < Code.length - 1; i++) {
                    Ancode = Code.substring(i, i + 1);
                    Ancodevalue = str.indexOf(Ancode);
                    total = total + Ancodevalue * weightedfactors[i];
                    //权重与加权因子相乘之和
                }
                var logiccheckcode = 31 - total % 31;
                if (logiccheckcode == 31) {
                    logiccheckcode = 0;
                }
                var Str = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,T,U,W,X,Y";
                var Array_Str = Str.split(',');
                logiccheckcode = Array_Str[logiccheckcode];
        
        
                var checkcode = Code.substring(17, 18);
                if (logiccheckcode != checkcode) {
                    console.info("不是有效的统一社会信用编码!");
                    return false;
                }else{
                    return true;
                }
                return true;
            }
        }
    回复
    半支烟0
    2015/4/21 16:39:19
    哈,刚用了这个,觉得有点不爽,正好试一试看改的怎么样?
        天天都如此!0
        2017/5/22 17:14:15

        那你改动的怎么样?

    回复

讨论这个项目(4)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

取消回复