js策略模式

2021-10-09 17:26:09 字數 2245 閱讀 3512

<

!doctype html>

"en"

>

"utf-8"

>

"viewport" content=

"width=device-width, initial-scale=1.0"

>

document<

/title>

*

form

.item

.item label

.item input

.item span

<

/style>

<

/head>

="item"

>

使用者名稱<

/label>

"usernameinput" type=

"text"

/>

"usernametips"

>

<

/span>

<

/div>

="item"

>

密碼<

/label>

"passwordinput" type=

"password"

/>

"passwordtips"

>

<

/span>

<

/div>

<

/form>

var usernameinput = document.

getelementbyid

("usernameinput");

var usernametips = document.

getelementbyid

("usernametips");

var passwordinput = document.

getelementbyid

("passwordinput");

var passwordtips = document.

getelementbyid

("passwordtips");

//這個變數裡面是乙個立即執行函式 然後立即執行函式的返回值是乙個物件 物件裡面有兩個函式 函式由於閉包的原因 可以使用上方定義的物件的函式

var strategy =

(function()

$/;return checkword7t19.

test

(value)?""

:"請輸入長度為7~19位的組合字元,由數字、字母、下劃線組成,不能以數字開頭"},

checkword7t16

(value)$/;

return checkword7t16.

test

(value)?""

:"請輸入長度為7~16位的組合字元,由數字、字母、下劃線組成,不能以數字開頭"}}

return

,// 使用

use(name, value)}}

)();

// 使用者如果無法找到對應的滿意的策略 我們也可以允許使用者自己新增

strategy.

add(

"checkemail"

,function

(value)

@\w\.\w$/

;return reg.

test

(value)?""

:"請輸入格式正確的郵箱";}

);// 繫結 onblur 事件

usernameinput.

onblur

=function()

usernametips.style.color =

"green"

; usernametips.innerhtml =

"√";

} passwordinput.

onblur

=function()

passwordtips.style.color =

"green"

; passwordtips.innerhtml =

"√";

}// 第乙個問題: 改** 不好改

// 第二個問題: 如果有多個表單在同乙個頁面 正規表示式沒法復用

<

/script>

<

/body>

<

/html>

JS 設計模式 策略模式

策略模式指的是定義一系列的演算法,把它們乙個個封裝起來。將不變的部分和變化的部分隔開是每個設計模式的主題,策略模式也不例外,策略模式的目的就是將演算法的使用與演算法的實現分離開來。可以很好的替換if else混亂的 var strategies a function salary b functio...

JS設計模式 策略模式

乙個根據等級計算獎金的例子。var stratagies a function salary b function salary var calculatebonus function level,salary console.log calculatebonus s 20000 console.l...

js 設計模式 策略模式

定義 將定義的一組演算法封裝起來,使其相互之間可以替換。封裝的演算法具有一定的獨立性,不會隨客戶端的變化而變化 廢話不多說,先來個例子 例如要寫乙個計算兩個數加減乘除的方法,會有人這麼寫 countnum type,num1,num2 else if type subtract else if ty...