קוק שפּריכוואָרט סטרענגטה מיט דזשאַוואַסקריפּט און רעגולער עקספּרעססיאָנס

קוק שפּריכוואָרט סטרענגטה מיט דזשאַוואַסקריפּט און רעגולער עקספּרעססיאָנס

איך האָב דורכגעקאָכט אַ פאָרשונג צו געפֿינען אַ גוטן בייַשפּיל פון אַ שפּריכוואָרט טשעקער וואָס ניצט דזשאַוואַסקריפּט און רעגולער עקספּרעססיאָנס (רעגעקס). אין די אַפּלאַקיישאַן ביי מיין אַרבעט, מיר טאָן אַ פּאָסטן צוריק צו באַשטעטיקן די שטאַרקייַט פון די פּאַראָל און עס איז גאַנץ ומבאַקוועם פֿאַר אונדזער ניצערס.

וואָס איז רעגעקס?

א רעגולער אויסדרוק איז אַ סיקוואַנס פון אותיות וואָס דעפינירן אַ זוכן מוסטער. יוזשאַוואַלי אַזאַ פּאַטערנז זענען געניצט דורך אַלגערידאַמז פֿאַר זוכן פון שטריקל זוכן געפינען or געפֿינען און פאַרבייַטן אַפּעריישאַנז אויף סטרינגס, אָדער פֿאַר ינפּוט וואַלאַדיישאַן. 

דער אַרטיקל קען נישט לערנען איר רעגולער אויסדרוקן. נאָר וויסן אַז די פיייקייט צו נוצן רעגולער עקספּרעססיאָנס וועט לעגאַמרע פאַרפּאָשעטערן דיין אַנטוויקלונג ווען איר זוכן פֿאַר פּאַטערנז אין טעקסט. עס איז אויך וויכטיק צו באַמערקן אַז רובֿ אַנטוויקלונג שפּראַכן האָבן אָפּטימיזעד רעגולער אויסדרוק נוצן.

איך האָב געזוכט די וועב גאַנץ אַ ביסל איידער איך געפונען אַ בייַשפּיל פון עטלעכע ויסגעצייכנט רעגולער עקספּרעססיאָנס וואָס קוקן פֿאַר אַ קאָמבינאַציע פון ​​לענג, אותיות און סימבאָלס. אָבער, די קאָד איז געווען אַ ביסל יבעריק פֿאַר מיין געשמאַק און טיילערד פֿאַר .NET. אַזוי איך סימפּלאַפייד דעם קאָד און שטעלן עס אין דזשאַוואַסקריפּט. דאָס מאכט עס וואַלאַדייט די שטאַרקייַט פון די שפּריכוואָרט אין פאַקטיש-צייט אין דעם בלעטערער פון דעם קליענט איידער זיי שיקן עס צוריק ... און גיט עטלעכע באַמערקונגען צו די באַניצער וועגן די שטאַרקייַט פון די פּאַראָל.

טיפּ אַ שפּריכוואָרט

מיט יעדער קלאַפּ פון די קלאַוויאַטור, די פּאַראָל איז טעסטעד קעגן די רעגולער אויסדרוק, און דערנאָך די באַמערקונגען זענען צוגעשטעלט צו די באַניצער אין אַ שפּאַן אונטער אים.




טיפּ פּאַראָל

דאָ ס דער קאָד

די רעגולער עקספּרעססיאָנס טאָן אַ פאַנטאַסטיש אַרבעט פון מינאַמייזינג די קאָד לענג:

  • מער אותיות - אויב די לענג איז אונטער 8 אותיות.
  • שוואַך - אויב די לענג איז ווייניקער ווי 10 אותיות און טוט נישט אַנטהאַלטן אַ קאָמבינאַציע פון ​​סימבאָלס, קאַפּס, טעקסט.
  • מיטל - אויב די לענג איז 10 אותיות אָדער מער און האט אַ קאָמבינאַציע פון ​​סימבאָלס, קאַפּס, טעקסט.
  • שטאַרק - אויב די לענג איז 14 אותיות אָדער מער און האט אַ קאָמבינאַציע פון ​​סימבאָלס, קאַפּס, טעקסט.

<script language="javascript">
    function passwordChanged() {
        var strength = document.getElementById('strength');
        var strongRegex = new RegExp("^(?=.{14,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
        var mediumRegex = new RegExp("^(?=.{10,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
        var enoughRegex = new RegExp("(?=.{8,}).*", "g");
        var pwd = document.getElementById("password");
        if (pwd.value.length == 0) {
            strength.innerHTML = 'Type Password';
        } else if (false == enoughRegex.test(pwd.value)) {
            strength.innerHTML = 'More Characters';
        } else if (strongRegex.test(pwd.value)) {
            strength.innerHTML = '<span style="color:green">Strong!</span>';
        } else if (mediumRegex.test(pwd.value)) {
            strength.innerHTML = '<span style="color:orange">Medium!</span>';
        } else {
            strength.innerHTML = '<span style="color:red">Weak!</span>';
        }
    }
</script>
<input name="password" id="password" type="text" size="15" maxlength="100" onkeyup="return passwordChanged();" />
<span id="strength">Type Password</span>

פאַרגליווערט דיין פּאַראָל בעטן

עס איז יקערדיק אַז איר טאָן ניט נאָר באַשטעטיקן די פּאַראָל קאַנסטראַקשאַן אין דיין דזשאַוואַסקריפּט. דאָס קען געבן עמעצער מיט בלעטערער אַנטוויקלונג מכשירים צו בייפּאַס די שריפט און נוצן די פּאַראָל וואָס זיי וועלן. איר זאָל שטענדיק נוצן אַ סערווער-זייַט טשעק צו וואַלאַדייט די שטאַרקייַט פון די פּאַראָל איידער איר סטאָרד עס אין דיין פּלאַטפאָרמע.

קסנומקס באַמערקונגען

  1. 1
  2. 2

    THANK YOU! THANK YOU! THANK YOU! I’ve been fooling around for 2 weeks with damn password strength code from other websites and pulling my hair out. Yours is short, works just like I want and best of all, easy for a javascript novice to modify! I wanted to capture the strength verdict and not let the form post to actually update the user’s password unless it met the strength test. Other people’s code was too complicated or didn’t work right or something else. I love you! XXXXX

  3. 4
  4. 5
  5. 6

    Hi,first of all thanks alot for ur efforts,I tried to use this with Asp.net but didn’t work,i’m using

    instead of tag,and it didn’t work,any suggestions?!

  6. 7

    To Nisreen: the code in the highlighted box doesn’t work with a cut’n’paste. The single quote is messed up. The demonstration link’s code is fine though.

  7. 8
  8. 9
  9. 10
  10. 11
  11. 12
  12. 13
  13. 14
  14. 15
  15. 16
  16. 17
  17. 18
  18. 19
  19. 20
  20. 21
  21. 22
  22. 23
  23. 24

    This type of “strength checker” leads people down a very dangerous path. It values character diversity over passphrase length, leading it to rate shorter, more diverse passwords as stronger than longer, less diverse passwords. That is a fallacy that will get your users into trouble if they ever face a serious hacking threat.

  24. 26
  25. 27
  26. 28
  27. 29
  28. 31
  29. 33

    You are a live saver! I was parsing strings left right and centre and thought there is a better way and found your piece of code using Regex. Was able to tinkle with it for my site…You have no idea how much this helped. Thanks so much Douglas!!

וואָס טאָן איר טראַכטן?

דעם פּלאַץ ניצט אַקיסמעט צו רעדוצירן ספּאַם. לערן ווי דיין קאָמענטאַר דאַטע איז פּראַסעסט.