關於編寫通用指令碼驗證的一點思路

2021-04-13 03:17:40 字數 1180 閱讀 3664

想寫乙個比較通用的提交表單時的指令碼驗證程式,因為乙個個的編寫每個欄位的驗證實在是太麻煩了,昨天花了兩個小時想了一下,感覺乙個通用的驗證應該有如下特點:

1 不應該和**有任何關聯,例如通過向表單元素上增加自己的屬性,這樣會使html**可讀性降低。如果使用伺服器端tag(如struts的html標籤),可能連編譯都過不去。

2 錯誤資訊展示方式應該是可以擴充的,用mvc的觀點來說就是view層可以是多個,舉個例子,我們既可以使用alert語句輸出,也可以在頁面特定的位置輸出。

3 易於使用,如果配置的**比不用時的**還要複雜,就失去了意義,同時應該使使用者容易理解

4 支援伺服器端驗證,可以通過ajax等技術實現

簡單 想了一下,暫時採用在頁面上編寫乙個js物件的方式作為配置檔案的定義:

例如:var checkregular=[,

]},,]

},,  ]}

通過配置可以進行各種驗證型別的匹配選擇,進行驗證,並將錯誤資訊作為乙個陣列返回,此時可以選擇不同的展示方式去展示錯誤資訊。

下面是我寫的一段整合到dojo中的驗證程式**,此**定義了乙個js類,在類的check方法中接收乙個上面定義的配置檔案型別的js物件,然後根據規則進行判斷,將錯誤資訊返回。大家覺得這種方式是否可取呢??

dojo.provide("dojo.commonvalidate.commonvalidator");

dojo.commonvalidate.commonvalidator =function()

dojo.commonvalidate.commonvalidator.prototype.check=function(regular)

for(var i=0;idojo.commonvalidate.commonvalidator.prototype.checkvalidate=function(checkedvalue,rule);

}else;}}

else

//如果是進行最大長度驗證,則會轉向最大長度驗證處理**

if(rule.typename=="maxlength");

}else;}}

else

//如果是進行整型數字驗證,則會轉向整型驗證**

if(rule.typename=="isinteger");

}return ;

}return ;    

}

關於編寫通用指令碼驗證的一點思路

想寫乙個比較通用的提交表單時的指令碼驗證程式,因為乙個個的編寫每個欄位的驗證實在是太麻煩了,昨天花了兩個小時想了一下,感覺乙個通用的驗證應該有如下特點 1 不應該和 有任何關聯,例如通過向表單元素上增加自己的屬性,這樣會使html 可讀性降低。如果使用伺服器端tag 如struts的html標籤 可...

關於詞典查詢的一點思路

詞典查詢方法 首先,編寫加入詞庫工具,讀檔案,每行對應單詞為中文單詞和英文單詞,錄入時這樣 id 0 a 中文單詞,同時,寫另乙個索引檔案2 英文單詞首位址,中文單詞首位址。當輸入乙個字母時,開啟另乙個執行緒去查詢,把這個單詞,根據id二分之後 即 currentid 0 max 2 而這個curr...

產品的一點思路

一 產品描述 1.是什麼樣的產品?包括產品規則 內容 功能 產品特色等 2.和市場上的產品有什麼不同?3.產品生命週期如何延續?二 市場分析 1.分析市場上現有同型別產品的優劣勢 2.目標消費市場人群分析,人群細分 3.潛在消費使用者分析 4.使用者操作習慣分析,使用者體驗等 三 產品定位 四 市場...