註冊表單的驗證方法封裝

學了工廠方法後,想着嘗試下怎麼用,前幾天做了個網頁的註冊表單頁,今天就嘗試了下,初出茅驢,覺得現在的通用性並沒有達到最好的效果,望路過的大神指導。

var VerifyFactory = function (type,str) {}
VerifyFactory.prototype = {
    email: function (str) { // 郵箱
        return (function () {
            var reg = /^(\w)+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$/;
            return reg.test(str);
        })(str);
    },
    phone:function (str) { // 手機號
        return (function (str) {
            var reg = /^1[3|4|5|7|8][0-9]{9}$/;
            return reg.test(str);
        })(str);
    },
    certno:function (str) { // 身份證號
        return (function () {
            var reg = /(^\d{15}$)|(^\d{17}([0-9]|X)$)/;
            return reg.test(str);
        })(str);
    },
    password:function (str) { // 6-16位:字母或者數字
        return (function () {
            if(str.length<6){
                return 0;
            }else if(str.length>16){
                return 1;
            }else{
                var reg = /^[a-zA-Z0-9]{6,16}$/;
                return reg.test(str)==true?3:2;
            }
        })(str);
    },
    confirmPwd:function (str1,str2) { // 確認密碼
        return (function () {
            return (str1 == str2);
        })(str1,str2);
    },
    code: function (user,curr) { // 圖片驗證碼
        return (function (user,curr) {
            var curr = curr.toLowerCase();
            var reg = /^[a-zA-Z]{4}$/;
            if(reg.test(user)){ // 驗證碼格式正確判斷是否相符
                var usertest = user.toLowerCase();
                return (usertest == curr) ?2:1;
            }else{
                return 0; // 驗證碼格式不對
            }
        })(user,curr);
    },
    dynamic:function (str) { // 動態驗證碼 -- 6位數字
        return (function () {
            var reg = /^[0-9]{6}$/;
            return reg.test(str);
        })(str);
    }
}

使用時:(有兩個參數的可根據自己的實際情況進行修改,剛纔忽然有一個新思路,明後天再改吧,今天實在有點困了,傳完先睡)

var type = type; var str = str; // str爲需要測試的字符串
var a = new VerifyFactory();
a[type](str);
發佈了58 篇原創文章 · 獲贊 30 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章