關於JS校驗validate的一點兒心得

 

應公司要求花了幾天時間寫了一個校驗validate框架,想整理一下心得,但不方便把代碼放上來,這裏共享一下設計思路。

 

 

類圖:

 

序列圖:





簡單的說一下,

 

ErrorMessage可是自己設計需要的錯誤提示信息的樣式,在Validete類中通過getMessager()方法來獲取ErrorMessage實例;

 

ValideteRule類中有很多校驗規則的細項,比如不能爲空,字符長度,郵件格式等等,每個校驗規則都是一個獨立的類,類似代碼如下:

 

 

 

/**

 * @description 驗證最大長度

 * @constructor CheckMaxLength

 * @param option JSON對象 

 * @example new CheckMaxLength({msg:'最大長度不可超過16位',length:'16'}); 

 */

function CheckMaxLength(option){

  /** 

     * @description {String} 錯誤提示信息 

     * @field 

     */  

this.msg = option.msg;

/** 

     * @description {Num} 長度 

     * @field 

     */  

this.length = option.length;

}

/**

 * @description 執行校驗

 * @param obj  校驗對象

 * @throws msg 錯誤提示信息

 */

CheckMaxLength.prototype.validate = function(obj){

if (obj.value.length<1)  return true;

if(obj.value.length>this.length){

 throw  this.msg;     

}

}

 

 

 

Validete類本身類似於一個action,validete()是核心的執行校驗方法,根據不同的校驗規則調用規則本身的validate()方法,若校驗不通過則捕獲異常,拋出錯誤信息到ErrorMessage類修理;

 

 

結合類圖與序列圖,設計應該可以理解,有興趣的朋友可以M我!




 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章