|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
效率会有不少的变化。而实际上java是基于堆栈机器来设计,这和我们常见的基于寄存器的本地机器是差异比较大的。总体来说,这是一种虚拟机的设计思路。asp.net本文源于维生素C.net的一篇文章使用数学办法来年夜年夜下降一个逻辑判别完成的难度的例子。检测代码来自THIN的查验暗码强度的JS类。
Atlas中供应了客户端JavaScript壮大的面向工具功效,这几天看到了上述二位的帖子,以为这个功效需求在一样平常开辟中仍是很罕见的。早晨闲来无事,将上述功效封装为Atlas中的Behavior,以便利重用。关于Atlas的Behavior,请参考:在ASP.NETAtlas中创立自界说的Behavior。
依照在ASP.NETAtlas中创立自界说的Behavior这篇文章的五个自界说步骤,很简单写出了这个Behavior。个中最主要的部分为查验暗码强度的算法,这里我偷了个懒,只是复杂的将THIN的代码完整Copy过去(兄弟不要骂我-_-b),故意的伴侣能够将它重组成更“Atlas”的模样。这个检测函数将在每次用户在响应的input中按键时被触发:
functionkeyPressHandler(){
//youmayrefactorthisparttomakethecodemoreAtlaslike:-)
varPasswordStrength={
Level:["高,其实是高","还行啦","靠,如许也行"],
LevelValue:[30,20,0],//强度值
Factor:[1,2,5],//字符加数,分离为字母,数字,别的
KindFactor:[0,0,10,20],//暗码含几种构成的加数
Regex:[/[a-zA-Z]/g,/d/g,/[^a-zA-Z0-9]/g]//字符正则数字正则别的正则
}
PasswordStrength.StrengthValue=function(pwd)
{
varstrengthValue=0;
varComposedKind=0;
for(vari=0;i<this.Regex.length;i++)
{
varchars=pwd.match(this.Regex);
if(chars!=null)
{
strengthValue+=chars.length*this.Factor;
ComposedKind++;
}
}
strengthValue+=this.KindFactor[ComposedKind];
returnstrengthValue;
}
PasswordStrength.StrengthLevel=function(pwd)
{
varvalue=this.StrengthValue(pwd);
for(vari=0;i<this.LevelValue.length;i++)
{
if(value>=this.LevelValue)
returnthis.Level;
}
}
//endoftherefactoringsection
$(_checkResultLabelID).innerHTML=PasswordStrength.StrengthLevel(this.control.element.value);
}
同时在这个Behavior中增加了属性checkResultLabelID,用来指定显现查验了局的Label:
var_checkResultLabelID;
this.get_checkResultLabelID=function(){
return_checkResultLabelID;
}
this.set_checkResultLabelID=function(value){
if(_checkResultLabelID!=value){
_checkResultLabelID=value;
this.raisePropertyChanged(checkResultLabelID);
}
}
您也能够很便利的增加一些更花梢的功效,比方关于分歧强度的输出,提醒笔墨的背景色彩有所改动等。完全的源代码请参考本文前面的下载。
测试的步骤也很复杂,起首在ScriptManager中增加这个Behavior的援用:
<atlas:ScriptManagerrunat="server"ID="ScriptManager1">
<Scripts>
<atlas:ScriptReferencePath="PasswordStrengthCheckBehavior.js"/>
</Scripts>
</atlas:ScriptManager>
然后在页面上增加一个input,用来输出暗码(演示程序中没有设定type为password),和一个span,用来显现查验了局:
<div>
Inputapassword:
<inputid="password"type="text"/>
<spanid="result"></span>
</div>
最初,AtlasScript中将下面的input提拔为Atlas控件,并到场我们方才写好的Behavior:
<scripttype="text/xml-script">
<pagexmlns:script="http://schemas.microsoft.com/xml-script/2005">
<components>
<textBoxid="password">
<behaviors>
<passwordStrengthCheckBehaviorcheckResultLabelID="result"/>
</behaviors>
</textBox>
</components>
</page>
</script>
就是这么复杂,扫瞄器中以下:
复杂暗码:
中等暗码:
庞大暗码:
捆绑编译器。用户不需要受制于厂家,自己就能将程序在新平台上编译运行。除了牛B轰轰的linux,估计也没有系统捆绑c/c++的编译器,而且许多新平台都无法支持复杂的c/c++编译器在上面直接运行。 |
|