<
!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...