表單 驗證,手機 ,QQ,電子郵箱,數字,郵政編碼,身份證,手機号 & 電話
好吧寫一個自己的表單驗證,臨時的。
後面還更新:現在依賴jq
//表單驗證
function testInput(o,attr,yfn,nfn,run){
var re = {
\'age\' :/^[^0]\d{0,2}$/,
\'null\' :/\s/,
\'qq\' : /^[1-9][0-9]{4,9}$/, //QQ
\'email\' : /^\w+@[a-z0-9]+(\.[a-z]+){1,3}$/, //電子郵箱
\'number\': /^\d+$/, //數字
\'mail\' :/^[1-9]\d{5}$/, //郵政編碼
\'id\' :/^[1-9]\d{14}|[1-9]\d{17}|[1-9]\d{16}x$/, //身份證
\'call\' :/(^(\d{3,4}-)?\d{7,8})$|(1[3,4,5,8][0-9]{9})/ //手機号 & 電話
};
function fyes(){
o.removeClass(\'no_verify\');
if(yfn)yfn()
return o.val();
}
function fno(){
o.addClass(\'no_verify\');
if(nfn)nfn()
console.log(\'錯誤資訊:\'+attr)
return false;
}
function go(){
if(attr && typeof attr !=\'number\'){
if(o.val() && re[attr].test(o.val())){
return fyes()
}else{
return fno()
}
}else if(attr && typeof attr ==\'number\'){
if(o.val().length>attr){
return fyes()
}else{
return fno()
}
}else if(!attr){
if(o.val()){
return fyes()
}else{
return fno()
}
}
};
if(run){ return go() } //run=true 驗證一下表單
o.blur(go);
};
試用方法 ://testInput( JQ對象 , \'驗證屬性 || 不傳值驗證表單不為空 || 數字 驗證位元組不少于這個數\' , \'驗證成功fn\' , \'失敗fn\' , 要不要自執行)
(最後一個值為 false :驗證成功傳回值,不成功會傳回false; 這裡還會對表單加一個class樣式:no_verify)
var f2=testInput($(\'#phone\'), \'call\',\'\',\'\',false) //驗證是不是電話或手機
var f5=testInput($(\'#userName\'), \'\',\'\',\'\',false) //表單不為空
var f12=testInput($(\'#reason\'),20,\'\',\'\',false) //表單不小于20個