Сила пароля должна быть проверена от имени нескольких параметров, таких как наличие специальных символов и чисел, длина пароля и т. д.
Я нашел ниже учебник с приятной демонстрацией:
http://tinytute.com/2014/06/03/animated-password-strength-checker-quick-easy/
Кодовый блок jQuery:
$(document).ready(function(){
$("#textBox").keyup(function(){
var passWord = $("#textBox").val();
var passLength = passWord.length;
var specialFlag = 0;
var numberFlag = 0;
var numberGenerator = 0;
var total = 0;
if(/^[a-zA-Z0-9- ]*$/.test(passWord) == false) {
specialFlag =20;
}
if(passWord.match(/[0-9]/)) {
numberFlag = 25;
}
if(passLength>4&&passLength<=6){
numberGenerator =25;
}else if(passLength>=7&&passLength<=9){
numberGenerator =35;
}else if(passLength>9){
numberGenerator =55;
}else if(passLength>0&&passLength<=4){
numberGenerator =15;
}else{
numberGenerator =0;
}
total = numberGenerator + specialFlag + numberFlag;
if(total<30){
$('#progressBar').css('background-color','#CCC');
}else if(total<60&&total>=30){
$('#progressBar').css('background-color','#FF6600');
}else if(total>=60&&total<90){
$('#progressBar').css('background-color','#FFCC00');
}else if(total>=90){
$('#progressBar').css('background-color','#0f0');
}
$('#progressBar').css('width',total+'%');
});
});
Надеюсь, что эти логические решения помогут решить проблему
Мне всегда нравилось задавать все для моего кодирования. Таким образом, все модули и код, лежащие на моих листах или в формах, начинаются со следующих трех строк, прежде чем писать какой-либо дополнительный код.
Option Base 0
Option Explicit
Option Compare Text
Если я хочу, чтобы что-то обрабатывалось по-разному в определенном Sub
для по какой-то причине, тогда я делаю это только в этом конкретном sub
и делаю так, как было предложено в комментарии выше (пример):
dict.CompareMode = BinaryCompare 'if I need a case-sensitive compare in this sub
Поскольку VBE знает, что dict
является Словарем, он может предоставить предложения для автозаполнения. Это возможно только при раннем связывании. При позднем связывании VBE не будет предоставлять никаких автозаполненных предложений.
Option Compare Text
не влияет на объектыDictionary
. По умолчанию они всегда будут выполнять сравнения по двоичным / случайным критериям. – Bond 25 July 2015 в 03:29vbTextCompare
. Откуда это? Это должно бытьdict.CompareMode = TextCompare
. – Ralph 25 July 2018 в 07:38vbTextCompare
- заданная константа для этой операции. Это может быть вопрос о том, какую версию excel вы используете, но если вы не верите, что я проверяю документацию microsoft для себя msdn.microsoft.com/en-us/vba/language-reference-vba/ статьи / & hellip; – Marcucciboy2 26 July 2018 в 23:48dict
, пока я не добавлю префиксvb
– Marcucciboy2 26 July 2018 в 23:48dim
используете переменные в качестве словаря, а скорее какObjects
, а затем (далее в коде) сообщают VBA в вашем коде (во время выполнения), что этоObject
на самом деле является словарем, использующимCreateObject("Scripting.Dictionary")
. Так как ваша переменная в это времяObject
, вы можете использоватьvbTextCompare
или1
(потому что ваша переменная по существу является объектом). Или вы даже можете установитьCompareMode = 1
напрямую. Тем не менее, если вы используете раннее связывание, тогдаvbTextCompare
будет отказано, и будет работать толькоTextCompare
. – Ralph 27 July 2018 в 10:41TextCompare
. Если я сниму эту ссылку и использую позднюю привязку, толькоvbTextCompare
изменит значениеdict.CompareMode
– Marcucciboy2 30 July 2018 в 13:47