Überprüfen Sie die Implementierung des Strategiemusters
Sep 22, 2017 am 09:47 AM// 定义策略var strategy = { isNotEmpty: function(value, errorMsg){ if(value === ''){ return errorMsg; } }, minLength: function(value, length, errorMsg){ if(value.length < length){ return errorMsg; } }, mobileFormat: function(value, errorMsg){ if(!/(^1[3|5|8][0-9]{9}$)/.test(value)){ return errorMsg; } } }function Validator() { this.cache = []; } Validator.prototype.add = function(value, rules){ for(var i = 0, rule; rule = rules[i++];){ var self = this; (function(rule){ self.cache.push(function(){ var strategyRule = rule.strategy.split(':'); var strategyName = strategyRule.shift(); // 各位看官注意啦, 如果直接使用[value].concat(strategyRule.push(rule.errorMsg))会出问题 // 什么问题呢? // strategyRule.push(rule.errorMsg)这货会返回length, 我TM调试了半天! strategyRule.push(rule.errorMsg); var arr = [value].concat(strategyRule); return strategy[strategyName].apply(null,arr); }) })(rule); } } Validator.prototype.check = function(){ for(var i = 0, checkFn; checkFn = this.cache[i++];){ var msg = checkFn(); if(msg){ return msg; } } }var validator = new Validator(); validator.add('12345', [ { strategy: 'isNotEmpty', errorMsg: 'in not empty' }, { strategy: 'minLength:10', errorMsg: 'length is less than 10' } ]);var tip = validator.check(); // tip: length is less than 10
Das obige ist der detaillierte Inhalt vonÜberprüfen Sie die Implementierung des Strategiemusters. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Was bewirkt der „Bitte nicht stören'-Modus von WeChat?

Wie implementiert man die doppelte WeChat-Anmeldung auf Huawei-Mobiltelefonen?

„Bitte nicht stören'-Modus funktioniert auf dem iPhone nicht: Behebung

So implementieren Sie die WeChat-Klonfunktion auf Huawei-Mobiltelefonen

PHP-Programmierhandbuch: Methoden zur Implementierung der Fibonacci-Folge

Meistern Sie, wie Golang Möglichkeiten für die Spieleentwicklung eröffnet

Implementierungshandbuch für PHP-Spielanforderungen

exe zu php: eine effektive Strategie zur Funktionserweiterung
