-
Notifications
You must be signed in to change notification settings - Fork 47
/
secretInfo.js
34 lines (31 loc) · 1.02 KB
/
secretInfo.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
* @desc 给隐私信息标记号加密
* @param {String} personInfo
* @param {Number} left
* @param {Number} right
* @param {String} replace
*/
var typeOf = require('./typeOf');
var secretInfo = function secretInfo(personInfo) {
var left = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;
var right = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3;
var replace = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '*';
if (typeOf(personInfo) === 'Number') {
personInfo = '' + personInfo;
}
if (typeOf(personInfo) !== 'String') {
throw new Error('参数类型错误');
}
if (personInfo.length < 7) {
throw new Error('参数长度需要大于7');
}
var reg = new RegExp('^([a-zA-Z\\d]{' + left + '})([a-zA-Z\\d]+)([a-zA-Z\\d]{' + right + '})$');
return personInfo.replace(reg, function (x, y, z, p) {
var i = '';
while (i.length < z.length) {
i += replace;
}
return y + i + p;
});
};
module.exports = secretInfo;