Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in
Toggle navigation
A
az-uniapp-wechat-web
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李智书
az-uniapp-wechat-web
Commits
9b19cfe8
Commit
9b19cfe8
authored
Jul 22, 2021
by
李智书
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.提交更新
parent
d58cac6f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
275 additions
and
1 deletion
+275
-1
common/js/idCardCheck.js
common/js/idCardCheck.js
+271
-0
pages/assignDeposit/assignDeposit.vue
pages/assignDeposit/assignDeposit.vue
+4
-1
No files found.
common/js/idCardCheck.js
0 → 100644
View file @
9b19cfe8
let
idCardNoUtil
=
{
/*省,直辖市代码表*/
provinceAndCitys
:
{
11
:
"
北京
"
,
12
:
"
天津
"
,
13
:
"
河北
"
,
14
:
"
山西
"
,
15
:
"
内蒙古
"
,
21
:
"
辽宁
"
,
22
:
"
吉林
"
,
23
:
"
黑龙江
"
,
31
:
"
上海
"
,
32
:
"
江苏
"
,
33
:
"
浙江
"
,
34
:
"
安徽
"
,
35
:
"
福建
"
,
36
:
"
江西
"
,
37
:
"
山东
"
,
41
:
"
河南
"
,
42
:
"
湖北
"
,
43
:
"
湖南
"
,
44
:
"
广东
"
,
45
:
"
广西
"
,
46
:
"
海南
"
,
50
:
"
重庆
"
,
51
:
"
四川
"
,
52
:
"
贵州
"
,
53
:
"
云南
"
,
54
:
"
西藏
"
,
61
:
"
陕西
"
,
62
:
"
甘肃
"
,
63
:
"
青海
"
,
64
:
"
宁夏
"
,
65
:
"
新疆
"
,
71
:
"
台湾
"
,
81
:
"
香港
"
,
82
:
"
澳门
"
,
91
:
"
国外
"
},
/*每位加权因子*/
powers
:
[
"
7
"
,
"
9
"
,
"
10
"
,
"
5
"
,
"
8
"
,
"
4
"
,
"
2
"
,
"
1
"
,
"
6
"
,
"
3
"
,
"
7
"
,
"
9
"
,
"
10
"
,
"
5
"
,
"
8
"
,
"
4
"
,
"
2
"
],
/*第18位校检码*/
parityBit
:
[
"
1
"
,
"
0
"
,
"
X
"
,
"
9
"
,
"
8
"
,
"
7
"
,
"
6
"
,
"
5
"
,
"
4
"
,
"
3
"
,
"
2
"
],
/*性别*/
genders
:
{
male
:
"
男
"
,
female
:
"
女
"
},
/*校验地址码*/
checkAddressCode
:
function
(
addressCode
)
{
let
check
=
/^
[
1-9
]\d{5}
$/
.
test
(
addressCode
);
if
(
!
check
)
return
false
;
if
(
idCardNoUtil
.
provinceAndCitys
[
parseInt
(
addressCode
.
substring
(
0
,
2
))])
{
return
true
;
}
else
{
return
false
;
}
},
/*校验日期码*/
checkBirthDayCode
:
function
(
birDayCode
)
{
let
check
=
/^
[
1-9
]\d{3}((
0
[
1-9
])
|
(
1
[
0-2
]))((
0
[
1-9
])
|
([
1-2
][
0-9
])
|
(
3
[
0-1
]))
$/
.
test
(
birDayCode
);
if
(
!
check
)
return
false
;
let
yyyy
=
parseInt
(
birDayCode
.
substring
(
0
,
4
),
10
);
let
mm
=
parseInt
(
birDayCode
.
substring
(
4
,
6
),
10
);
let
dd
=
parseInt
(
birDayCode
.
substring
(
6
),
10
);
let
xdata
=
new
Date
(
yyyy
,
mm
-
1
,
dd
);
if
(
xdata
>
new
Date
())
{
return
false
;
//生日不能大于当前日期
}
else
if
((
xdata
.
getFullYear
()
==
yyyy
)
&&
(
xdata
.
getMonth
()
==
mm
-
1
)
&&
(
xdata
.
getDate
()
==
dd
))
{
return
true
;
}
else
{
return
false
;
}
},
/*计算校检码*/
getParityBit
:
function
(
idCardNo
)
{
let
id17
=
idCardNo
.
substring
(
0
,
17
);
/*加权 */
let
power
=
0
;
for
(
let
i
=
0
;
i
<
17
;
i
++
)
{
power
+=
parseInt
(
id17
.
charAt
(
i
),
10
)
*
parseInt
(
idCardNoUtil
.
powers
[
i
]);
}
/*取模*/
let
mod
=
power
%
11
;
return
idCardNoUtil
.
parityBit
[
mod
];
},
/*验证校检码*/
checkParityBit
:
function
(
idCardNo
)
{
let
parityBit
=
idCardNo
.
charAt
(
17
).
toUpperCase
();
if
(
idCardNoUtil
.
getParityBit
(
idCardNo
)
==
parityBit
)
{
return
true
;
}
else
{
return
false
;
}
},
/*校验15位或18位的身份证号码*/
checkIdCardNo
:
function
(
idCardNo
)
{
//15位和18位身份证号码的基本校验
let
check
=
/^
\d{15}
|
(\d{17}(\d
|x|X
))
$/
.
test
(
idCardNo
);
if
(
!
check
)
return
false
;
//判断长度为15位或18位
if
(
idCardNo
.
length
==
15
)
{
return
idCardNoUtil
.
check15IdCardNo
(
idCardNo
);
}
else
if
(
idCardNo
.
length
==
18
)
{
return
idCardNoUtil
.
check18IdCardNo
(
idCardNo
);
}
else
{
return
false
;
}
},
//校验15位的身份证号码
check15IdCardNo
:
function
(
idCardNo
)
{
//15位身份证号码的基本校验
let
check
=
/^
[
1-9
]\d{7}((
0
[
1-9
])
|
(
1
[
0-2
]))((
0
[
1-9
])
|
([
1-2
][
0-9
])
|
(
3
[
0-1
]))\d{3}
$/
.
test
(
idCardNo
);
if
(
!
check
)
return
false
;
//校验地址码
let
addressCode
=
idCardNo
.
substring
(
0
,
6
);
check
=
idCardNoUtil
.
checkAddressCode
(
addressCode
);
if
(
!
check
)
return
false
;
let
birDayCode
=
'
19
'
+
idCardNo
.
substring
(
6
,
12
);
//校验日期码
return
idCardNoUtil
.
checkBirthDayCode
(
birDayCode
);
},
//校验18位的身份证号码
check18IdCardNo
:
function
(
idCardNo
)
{
//18位身份证号码的基本格式校验
let
check
=
/^
[
1-9
]\d{5}[
1-9
]\d{3}((
0
[
1-9
])
|
(
1
[
0-2
]))((
0
[
1-9
])
|
([
1-2
][
0-9
])
|
(
3
[
0-1
]))\d{3}(\d
|x|X
)
$/
.
test
(
idCardNo
);
if
(
!
check
)
return
false
;
//校验地址码
let
addressCode
=
idCardNo
.
substring
(
0
,
6
);
check
=
idCardNoUtil
.
checkAddressCode
(
addressCode
);
if
(
!
check
)
return
false
;
//校验日期码
let
birDayCode
=
idCardNo
.
substring
(
6
,
14
);
check
=
idCardNoUtil
.
checkBirthDayCode
(
birDayCode
);
if
(
!
check
)
return
false
;
//验证校检码
return
idCardNoUtil
.
checkParityBit
(
idCardNo
);
},
formateDateCN
:
function
(
day
)
{
let
yyyy
=
day
.
substring
(
0
,
4
);
let
mm
=
day
.
substring
(
4
,
6
);
let
dd
=
day
.
substring
(
6
);
return
yyyy
+
'
-
'
+
mm
+
'
-
'
+
dd
;
},
//获取信息
getIdCardInfo
:
function
(
idCardNo
)
{
let
idCardInfo
=
{
gender
:
""
,
//性别
birthday
:
""
// 出生日期(yyyy-mm-dd)
};
if
(
idCardNo
.
length
==
15
)
{
let
aday
=
'
19
'
+
idCardNo
.
substring
(
6
,
12
);
idCardInfo
.
birthday
=
idCardNoUtil
.
formateDateCN
(
aday
);
if
(
parseInt
(
idCardNo
.
charAt
(
14
))
%
2
==
0
)
{
idCardInfo
.
gender
=
idCardNoUtil
.
genders
.
female
;
}
else
{
idCardInfo
.
gender
=
idCardNoUtil
.
genders
.
male
;
}
}
else
if
(
idCardNo
.
length
==
18
)
{
let
aday
=
idCardNo
.
substring
(
6
,
14
);
idCardInfo
.
birthday
=
idCardNoUtil
.
formateDateCN
(
aday
);
if
(
parseInt
(
idCardNo
.
charAt
(
16
))
%
2
==
0
)
{
idCardInfo
.
gender
=
idCardNoUtil
.
genders
.
female
;
}
else
{
idCardInfo
.
gender
=
idCardNoUtil
.
genders
.
male
;
}
}
return
idCardInfo
;
},
/*18位转15位*/
getId15
:
function
(
idCardNo
)
{
if
(
idCardNo
.
length
==
15
)
{
return
idCardNo
;
}
else
if
(
idCardNo
.
length
==
18
)
{
return
idCardNo
.
substring
(
0
,
6
)
+
idCardNo
.
substring
(
8
,
17
);
}
else
{
return
null
;
}
},
/*15位转18位*/
getId18
:
function
(
idCardNo
)
{
if
(
idCardNo
.
length
==
15
)
{
let
id17
=
idCardNo
.
substring
(
0
,
6
)
+
'
19
'
+
idCardNo
.
substring
(
6
);
let
parityBit
=
idCardNoUtil
.
getParityBit
(
id17
);
return
id17
+
parityBit
;
}
else
if
(
idCardNo
.
length
==
18
)
{
return
idCardNo
;
}
else
{
return
null
;
}
},
/* 护照 */
isPassPortCard
(
idCardNo
)
{
// 护照
// 规则: 14/15开头 + 7位数字, G + 8位数字, P + 7位数字, S/D + 7或8位数字,等
// 样本: 141234567, G12345678, P1234567
var
reg
=
/^
([
a-zA-z
]
|
[
0-9
]){5,17}
$/
;
if
(
reg
.
test
(
idCardNo
)
===
false
)
{
return
false
;
}
else
{
return
idCardNo
;
}
},
/* 台湾居民来往大陆通行证 */
isTWCard
(
idCardNo
)
{
// 台湾居民来往大陆通行证
// 规则: 新版8位或18位数字, 旧版10位数字 + 英文字母
// 样本: 12345678 或 1234567890B
var
reg
=
/^
\d{8}
|^
[
a-zA-Z0-9
]{10}
|^
\d{18}
$/
;
if
(
reg
.
test
(
idCardNo
)
===
false
)
{
// return { 'status': 0, 'msg': '台湾居民来往大陆通行证号码不合规' };
return
false
;
}
else
{
return
idCardNo
;
}
},
/* 港澳居民来往内地通行证 */
isHMCard
(
idCardNo
)
{
// 港澳居民来往内地通行证
// 规则: H/M + 10位或6位数字
// 样本: H1234567890
var
reg
=
/^
([
A-Z
]\d{6,10}(\(\w{1}\))?)
$/
;
if
(
reg
.
test
(
idCardNo
)
===
false
)
{
return
false
;
// return {
// 'status': 0,
// 'msg': '港澳居民来往内地通行证号码不合规'
// };
}
else
{
return
idCardNo
;
}
},
/* 港澳台居民居住证 */
isHMTCard
(
idCardNo
){
var
reg
=
/^8
[
123
]
0000
(?:
19|20
)\d{2}(?:
0
[
1-9
]
|1
[
0-2
])(?:
0
[
1-9
]
|
[
12
]\d
|3
[
01
])\d{3}[\d
X
]
$/
;
if
(
reg
.
test
(
idCardNo
)
===
false
)
{
return
false
;
}
else
{
return
idCardNo
;
}
},
/* 军官证 */
isOfficerCard
(
idCardNo
)
{
// 军官证
// 规则: 军/兵/士/文/职/广/(其他中文) + "字第" + 4到8位字母或数字 + "号"
// 样本: 军字第2001988号, 士字第P011816X号
var
reg
=
/^
[\u
4E00-
\u
9FA5
](
字第
)([
0-9a-zA-Z
]{4,8})(
号
?)
$/
;
if
(
reg
.
test
(
idCardNo
)
===
false
)
{
return
false
;
}
else
{
return
idCardNo
;
}
},
};
export
default
idCardNoUtil
;
pages/assignDeposit/assignDeposit.vue
View file @
9b19cfe8
...
...
@@ -1225,11 +1225,14 @@
.contentDiv
{
height
:
100%
;
margin-top
:
36rpx
;
//
margin-top: 36rpx;
border-radius
:
15rpx
;
background-image
:
url('https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/images/xiaopaycard (31)
.
png
');
background-repeat: no-repeat;
background-size: 100% 100%;
position: relative;
top: 36rpx;
}
.HidenText {
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment