汇联通执法队后台管理系统
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.

password-indicator.js 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. $.fn.passwordStrength = function( options ){
  2. return this.each(function(){
  3. var that = this;that.opts = {};
  4. that.opts = $.extend({}, $.fn.passwordStrength.defaults, options);
  5. that.div = $(that.opts.targetDiv);
  6. that.defaultClass = that.div.attr('class');
  7. that.percents = (that.opts.classes.length) ? 100 / that.opts.classes.length : 100;
  8. v = $(this)
  9. .keyup(function(){
  10. if( typeof el == "undefined" )
  11. this.el = $(this);
  12. var s = getPasswordStrength (this.value);
  13. var p = this.percents;
  14. var t = Math.floor( s / p );
  15. if( 100 <= s )
  16. t = this.opts.classes.length - 1;
  17. this.div
  18. .removeAttr('class')
  19. .addClass( this.defaultClass )
  20. .addClass( this.opts.classes[ t ] );
  21. });
  22. // .after('<a href="#">Generate Password</a>')
  23. // .next()
  24. // .click(function(){
  25. // $(this).prev().val( randomPassword() ).trigger('keyup');
  26. // return false;
  27. // });
  28. });
  29. function getPasswordStrength(H){
  30. var D=(H.length);
  31. if(D>5){
  32. D=5
  33. }
  34. var F=H.replace(/[0-9]/g,"");
  35. var G=(H.length-F.length);
  36. if(G>3){G=3}
  37. var A=H.replace(/\W/g,"");
  38. var C=(H.length-A.length);
  39. if(C>3){C=3}
  40. var B=H.replace(/[A-Z]/g,"");
  41. var I=(H.length-B.length);
  42. if(I>3){I=3}
  43. var E=((D*10)-20)+(G*10)+(C*15)+(I*10);
  44. if(E<0){E=0}
  45. if(E>100){E=100}
  46. return E
  47. }
  48. function randomPassword() {
  49. var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$_+";
  50. var size = 10;
  51. var i = 1;
  52. var ret = ""
  53. while ( i <= size ) {
  54. $max = chars.length-1;
  55. $num = Math.floor(Math.random()*$max);
  56. $temp = chars.substr($num, 1);
  57. ret += $temp;
  58. i++;
  59. }
  60. return ret;
  61. }
  62. };
  63. $.fn.passwordStrength.defaults = {
  64. classes : Array('is10','is20','is30','is40','is50','is60','is70','is80','is90','is100'),
  65. targetDiv : '#passwordStrengthDiv',
  66. cache : {}
  67. }