91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

正確的輸入——過濾器模式

發布時間:2020-08-05 20:32:28 來源:網絡 閱讀:898 作者:janwool 欄目:開發技術

    在建造者模式中動態創建表單時,用戶的輸入是任意的,顯然這是不允許的,我們需要過濾掉用戶不合理的輸入并加以提示,過濾器模式允許開發人員通過不同的標準過濾一組對象,并通過邏輯運算將他們連接起來。

    實例中根據表單的要求,設計輸入為空過濾器,郵箱格式過濾器,長度過濾器,并根據用戶的輸入給出結果,其類圖結構如下:

正確的輸入——過濾器模式

代碼實現:

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 + "不能為空");
			}
		}
	}
});
    <body>
        <form id = "form1" action = "#" method = "post">
        </form>
	
	</body>
	<script>
		var empty_filter,email_filter,length_filter;
		(function(){
			var name = new Input("郵箱","username","username","text");
			var password = new Input("密碼","password","password","password");
			var submit = new Button("提交","sub","sub",submitForm);
			var form  = new Form("form1",[]);
			form.addControl(name).addControl(password).addControl(submit).build();
			empty_filter = new EmptyFilter();
			length_filter = new LengthFilter();
			email_filter = new EmailFilter();
			empty_filter.addControl(name);
			empty_filter.addControl(password);
			email_filter.addControl(name);
			length_filter.addControl(password);
		
		})();
		function submitForm(){
			empty_filter.filter();
			email_filter.filter();
			length_filter.filter();
		}
	</script>


附件:http://down.51cto.com/data/2368476
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴林右旗| 射洪县| 自贡市| 娄底市| 德清县| 枝江市| 安乡县| 龙泉市| 体育| 包头市| 宁夏| 西林县| 临安市| 大荔县| 肇源县| 福泉市| 沙湾县| 朝阳市| 开阳县| 澄迈县| 翼城县| 桓台县| 岳阳县| 扶绥县| 莱阳市| 衢州市| 平谷区| 广平县| 洞头县| 嘉禾县| 磴口县| 客服| 百色市| 柳河县| 边坝县| 靖安县| 临海市| 达日县| 霍城县| 神木县| 湖南省|