<Col span={5}> <Form.Item label="身份证信息" name='sfzxx' rules={[{ validator: checkLength, }]}> <Input placeholder="请输入身份证信息" /> </Form.Item> </Col> const checkLength = (rule: any, value: string, callback: Function) => { if (checkIDCard(value)) { callback(); } else { callback('请输入正确的身份证号码'); } } export const checkIDCard = (value: string) => { // 加权因子 const weight_factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 校验码 const check_code = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; const code = value + ''; const last = value[17]; const seventeen = code.substring(0, 17); // ISO 7064:1983.MOD 11-2 // 判断最后一位校验码是否正确 const arr: any = seventeen.split(''); const len = arr.length; let num = 0; for (let i = 0; i < len; i += 1) { num += (arr[i] * weight_factor[i]); } // 获取余数 const resisue = num % 11; const last_no = check_code[resisue]; // 格式的正则 // 正则思路 /* 第一位不可能是0 第二位到第六位可以是0-9 第七位到第十位是年份,所以七八位为19或者20 十一位和十二位是月份,这两位是01-12之间的数值 十三位和十四位是日期,是从01-31之间的数值 十五,十六,十七都是数字0-9 十八位可能是数字0-9,也可能是X */ const idcard_patter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/; // 判断格式是否正确 const format = idcard_patter.test(value); // 返回验证结果,校验码和格式同时正确才算是合法的身份证号码 return last === last_no && format; }
属性
M = moveto(M X,Y) :将画笔移动到指定的坐标位置 L = lineto(L X,Y) :画直线到指定的坐标位置 H = horizontal lineto(H X):画水平线到指定的X坐标位置 V = vertical lineto(V Y):画垂直线到指定的Y坐标位置 C = curveto(C X1,Y1,X2,Y2,ENDX,ENDY):三次贝赛曲线 S = smooth curveto(S X2,Y2,ENDX,ENDY):平滑曲率 Q = quadratic Belzier curve(Q X,Y,ENDX,ENDY):二次贝赛曲线 T = smooth quadratic Belzier curveto(T ENDX,ENDY):映射 A = elliptical Arc(A RX,RY,XROTATION,FLAG1,FLAG2,X,Y):弧线Z = closepath():关闭路径
M:画笔起始位置
L:画直线(x,y)坐标
Z:自动闭合
fill: 填充颜色
stroke:描边颜色
stroke-width:描边宽度
transform="translate(x,y)": 加了描边后需要平移(x=stroke-width/2,
y=stroke-width/2)
https://segmentfault.com/a/1190000009556665
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接