正确的输入——过滤器模式-创新互联
在建造者模式中动态创建表单时,用户的输入是任意的,显然这是不允许的,我们需要过滤掉用户不合理的输入并加以提示,过滤器模式允许开发人员通过不同的标准过滤一组对象,并通过逻辑运算将他们连接起来。

实例中根据表单的要求,设计输入为空过滤器,邮箱格式过滤器,长度过滤器,并根据用户的输入给出结果,其类图结构如下:

代码实现:
var Filter = Class.extend({
controls:[],
ctor:function(_controls = []){
this.controls = _controls;
},
addControl:function(_control){
this.controls.push(_control);
},
filter:function(){
return [];
}
});
var EmailFilter = Filter.extend({
filter:function(){
var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
for(var i in this.controls){
var txt = document.getElementById(this.controls[i].id).value;
if(!myreg.test(txt))
{
console.log(this.controls[i].label + "不符合邮件格式");
}
}
}
});
var LengthFilter = Filter.extend({
filter:function(){
for(var i in this.controls){
var txt = document.getElementById(this.controls[i].id).value;
if(txt.length < 6){
console.log(this.controls[i].label + "长度不能小于6");
}
}
}
});
var EmptyFilter = Filter.extend({
filter:function(){
for(var i in this.controls){
var txt = document.getElementById(this.controls[i].id).value;
if(txt == ""){
console.log(this.controls[i].label + "不能为空");
}
}
}
});
附件:http://down.51cto.com/data/2368476另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
新闻名称:正确的输入——过滤器模式-创新互联
分享地址:http://www.jxjierui.cn/article/piedj.html


咨询
建站咨询
