secretInfo.js 1.0 KB

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