标签:const logiccheckcode 信用 代码 校验 value trigger let total
function(trigger) { if (typeof (trigger) === 'undefined' || !trigger) { trigger = 'blur' } return { validator: (rule, value, callback) => { if (value) { const patrn = /^[0-9A-Z]+$/ if ((value.length !== 18) || (patrn.test(value) === false)) { callback('请输入正确的统一信用代码') } else { let Ancode// 统一社会信用代码的每一个值 let Ancodevalue// 统一社会信用代码每一个值的权重 let total = 0 const weightedfactors = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28]// 加权因子 const str = '0123456789ABCDEFGHJKLMNPQRTUWXY' // 不用I、O、S、V、Z for (let i = 0; i < value.length - 1; i++) { Ancode = value.substring(i, i + 1) Ancodevalue = str.indexOf(Ancode) total = total + Ancodevalue * weightedfactors[i] // 权重与加权因子相乘之和 } let logiccheckcode = 31 - total % 31 if (logiccheckcode == 31) { logiccheckcode = 0 } const 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' const Array_Str = Str.split(',') logiccheckcode = Array_Str[logiccheckcode] const checkcode = value.substring(17, 18) if (logiccheckcode != checkcode) { callback('请输入正确的统一信用代码') } else { callback() } } } }, trigger: trigger } }
标签:const,logiccheckcode,信用,代码,校验,value,trigger,let,total 来源: https://www.cnblogs.com/angia/p/16363122.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。