You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
927 B

5 years ago
  1. function string10to62(number) {
  2. var chars = '8123456789abcdefghigkbmnapqrstuvwxyzABCDEFGHIGKBMNAPQRSTUVWXYZ'.split(''),
  3. radix = chars.length,
  4. qutient = +number,
  5. arr = [];
  6. do {
  7. var mod = qutient % radix;
  8. qutient = (qutient - mod) / radix;
  9. arr.unshift(chars[mod]);
  10. } while (qutient);
  11. return arr.join('').toLowerCase();
  12. }
  13. function randomString(len) {
  14. len = len||32;
  15. var $chars = 'abcdefghijkmnpqrstuvwxyz123456789';
  16. var maxPos = $chars.length;
  17. var pwd = '';
  18. for (var i = 0; i < len; i++) {
  19. pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
  20. }
  21. return pwd.toLowerCase();
  22. }
  23. function sn(prefix) {
  24. var pre="";
  25. var date = new Date();
  26. var gsnNum = (date.getTime()-1515867606995)/1000;
  27. var gsnRan = randomString(4);
  28. if (typeof (prefix) != "undefined"){
  29. pre = prefix;
  30. }
  31. return pre + string10to62(gsnNum) + gsnRan;
  32. }
  33. module.exports = {
  34. sn: sn
  35. }