1 |
|
2 |
|
3 |
|
4 |
|
5 | const mobileRex = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/;
|
6 | const codeRex = /^\d{6}$/;
|
7 | const cnReg = /^([\u4e00-\u9fa5\·]{2,6})$/;
|
8 | const regEmail = /^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+(\.[a-zA-Z]{2,3})+$/;
|
9 | const regIdCard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
|
10 | const usernameRex = /^[a-zA-Z][\da-zA-Z]{2,19}$/;
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | const checkUserName = (str) => {
|
16 | return usernameRex.test(str);
|
17 | }
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | const checkMobile =(str) =>{
|
23 | return mobileRex.test(str);
|
24 | }
|
25 |
|
26 |
|
27 |
|
28 |
|
29 | const checkCode = (str) => {
|
30 | return codeRex.test(str);
|
31 | }
|
32 |
|
33 |
|
34 |
|
35 |
|
36 | const checkCN = (str) => {
|
37 | return cnReg.test(str);
|
38 | }
|
39 |
|
40 |
|
41 |
|
42 |
|
43 | const checkPWD = (str) => {
|
44 | let rule1 = /\d+/;
|
45 | let rule2 = /[a-z]+/;
|
46 | let rule3 = /[A-Z]+/;
|
47 | let rule4 = /[~!@#\$%^&*\{\};,.\?\/'"]/;
|
48 | let rule5 = /^.{6,20}$/;
|
49 | let flag1 = rule1.test(str);
|
50 | let flag2 = rule2.test(str);
|
51 | let flag3 = rule3.test(str);
|
52 | let flag4 = rule4.test(str);
|
53 | let flag5 = rule5.test(str);
|
54 | if (flag1 && flag5 && (flag2 || flag3)) {
|
55 | return true;
|
56 | } else {
|
57 | return false;
|
58 | }
|
59 | }
|
60 |
|
61 |
|
62 |
|
63 |
|
64 | const formatCash = (money) => {
|
65 |
|
66 | return money.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
67 |
|
68 |
|
69 |
|
70 |
|
71 | }
|
72 |
|
73 |
|
74 |
|
75 |
|
76 |
|
77 |
|
78 |
|
79 |
|
80 |
|
81 |
|
82 |
|
83 |
|
84 |
|
85 |
|
86 |
|
87 |
|
88 |
|
89 |
|
90 |
|
91 |
|
92 | const validateIdCard = (idCard) => {
|
93 | let isOK = false;
|
94 |
|
95 | if (regIdCard.test(idCard)) {
|
96 | if (idCard.length == 18) {
|
97 | var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
|
98 | var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2);
|
99 | var idCardWiSum = 0;
|
100 | for (var i = 0; i < 17; i++) {
|
101 | idCardWiSum += idCard.substring(i, i + 1) * idCardWi[i];
|
102 | }
|
103 |
|
104 | var idCardMod = idCardWiSum % 11;
|
105 | var idCardLast = idCard.substring(17);
|
106 |
|
107 |
|
108 | if (idCardMod == 2) {
|
109 | if (idCardLast == "X" || idCardLast == "x") {
|
110 | isOK = true;
|
111 | } else {
|
112 | }
|
113 | } else {
|
114 |
|
115 | if (idCardLast == idCardY[idCardMod]) {
|
116 | isOK = true;
|
117 | } else {
|
118 | }
|
119 | }
|
120 | } else {
|
121 | isOK = true
|
122 | }
|
123 | }
|
124 | return isOK;
|
125 | }
|
126 |
|
127 |
|
128 |
|
129 |
|
130 |
|
131 |
|
132 | const getIdCardInfo = (UUserCard, type) => {
|
133 | if (type == 'birth') {
|
134 |
|
135 | birth = UUserCard.substring(6, 10) + "-" + UUserCard.substring(10, 12) + "-" + UUserCard.substring(12, 14);
|
136 | return birth;
|
137 | }
|
138 | if (type == 'sex') {
|
139 |
|
140 | if (parseInt(UUserCard.substr(16, 1)) % 2 == 1) {
|
141 |
|
142 | return "男";
|
143 | } else {
|
144 |
|
145 | return "女";
|
146 | }
|
147 | }
|
148 | if (type == 'age') {
|
149 |
|
150 | var myDate = new Date();
|
151 | var month = myDate.getMonth() + 1;
|
152 | var day = myDate.getDate();
|
153 | var age = myDate.getFullYear() - UUserCard.substring(6, 10) - 1;
|
154 | if (UUserCard.substring(10, 12) < month || UUserCard.substring(10, 12) == month && UUserCard.substring(12, 14) <= day) {
|
155 | age++;
|
156 | }
|
157 | return age;
|
158 | }
|
159 | }
|
160 | module.exports = {
|
161 | checkIdCard: validateIdCard,
|
162 | checkCN: checkCN
|
163 | }
|