策略模式:将定义的一组算法封装起来,使其互相之间可以替换。封装的算法具有一定独立性,不会随客户端变化而变化。
使用策略模式实现表单验证
// 使用策略模式实现表单验证
var InputStrategy = function () {
var strategy = {
notNull: function (value) {
return /\s+/.test(value) ? '请输入内容': ''
},
number: function( value) {
return /^[0-9]*$/.test(value) ? '': '请输入数字'
},
phone: function (value) {
return /^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$/.test(value) ? '' : '请输入正确电话号码'
}
}
return {
check: function(type, value) {
return strategy[type]? strategy[type](value): '没有该类型的检查方法'
},
addStrategy: function(type, fn) {
strategy[type] = fn
}
}
}