摘 要:本文從當(dāng)前通用動(dòng)態(tài)網(wǎng)站的一般應(yīng)用出發(fā),介紹了ASP.NET常用的四個(gè)驗(yàn)證控件的使用。指出ASP.NET驗(yàn)證控件的應(yīng)用是區(qū)別與其他程序開發(fā)語言優(yōu)點(diǎn)之一,建議.NET程序員要認(rèn)真體會,并熟練掌握。
關(guān)鍵詞:ASP.NET驗(yàn)證控件;正則表達(dá)式
中圖分類號:TP393.092
ASP.NET是微軟公司開發(fā)的新型動(dòng)態(tài)網(wǎng)站設(shè)計(jì)語言,目前很多中大型企業(yè)選擇VS做為開發(fā)環(huán)境,和SQLServer配合使用開發(fā)動(dòng)態(tài)網(wǎng)站應(yīng)用程序。簡單,易學(xué)易用。尤其體現(xiàn)在其提供了大量服務(wù)器控件,使操作更加便捷。在數(shù)據(jù)校驗(yàn)方面,在其他語言程序員通常通過編寫代碼來實(shí)現(xiàn)對數(shù)據(jù)校驗(yàn)與判斷,而.NET中卻提供了豐富的驗(yàn)證控件,只要設(shè)置一下驗(yàn)證控件的相關(guān)屬性,便能實(shí)現(xiàn)驗(yàn)證功能。
ASP.NET提供了6個(gè)驗(yàn)證控件,分別為必須寫字段驗(yàn)證控件RequiredFieldValidator,用于檢查是否有輸入值,比較驗(yàn)證控件CompareValidator用于比較按設(shè)定值進(jìn)行比較,范圍驗(yàn)證控件RangeValidator,用于檢查輸入值是否在指定范圍,正則表達(dá)式驗(yàn)證控件RegularExpressionValidator,可以判斷用戶輸入的內(nèi)容是否符合規(guī)定的格式(正則表達(dá)式),用戶自定義驗(yàn)證控件CustomerValidator和驗(yàn)證匯總控件ValidationSummary。其中前四個(gè)尤為重要,應(yīng)用較廣。
1 RequiredFieldValidator(必填驗(yàn)證)控件
1.1 使用說明
在網(wǎng)頁上填寫信息時(shí)有些項(xiàng)目是必須輸入的,例如:用戶名、密碼等,ASP.NET提供了RequiredFieldValidator控件,用于強(qiáng)制用戶輸入信息,即必填字段驗(yàn)證控件,用來檢查用戶是否在控件中輸入了數(shù)據(jù)。RequiredFieldValidator的使用方法很簡單,只需設(shè)置此控件的相關(guān)兩個(gè)屬性便可以實(shí)現(xiàn)。
1.2 屬性
ControlToValidate屬性設(shè)置欲驗(yàn)證的對應(yīng)控件名稱,ErrorMessage設(shè)置當(dāng)驗(yàn)證無效時(shí)顯示的報(bào)錯(cuò)信息。這兩個(gè)屬性是每個(gè)驗(yàn)證控件共有的。RequiredFieldValidator控件除具有驗(yàn)證控件都共有的屬性之外,還具有一個(gè)特殊屬性InitialValue,其含義是獲取或設(shè)置ControlToValidate屬性指定的控件初始值。
2 CompareValidator(比較)驗(yàn)證控件
2.1 使用說明
申請郵箱或注冊時(shí)需要兩次輸入密碼,系統(tǒng)將驗(yàn)證第二次輸入的密碼是否與第一次完全相同,ASP.NET提供了CompareValidator控件實(shí)現(xiàn)這一功能,該控件能夠?qū)⒂脩糨斎氲揭粋€(gè)輸入控件中的值與輸入到另一個(gè)輸入控件中的值或某個(gè)常數(shù)值進(jìn)行比較。除此以外他還可以進(jìn)行數(shù)據(jù)類型檢查,如判斷輸入的是否為數(shù)字、字符串等。
2.2 屬性
其主要屬性有三個(gè),ControlToValidate,用來設(shè)置要要檢查的控件,ErrorMessage屬性是設(shè)置如果控件的名不為空給出的報(bào)錯(cuò)信息,ControlToCompare,用來控制和哪個(gè)控件進(jìn)行比較。Type屬性表示要比較的控件的數(shù)據(jù)類型,Operator屬性表示比較操作設(shè)置操作符。
使用時(shí),只需要將要驗(yàn)證的控件ID填寫在ControlToValidate屬性上,將要比較的控件ID填寫在ControlToCompare上,再設(shè)置一下ErrorMessage就可以了。
3 RangeValidator(范圍驗(yàn)證)控件
3.1 使用說明
RangeValidato控件用來檢驗(yàn)控件中的值是否在設(shè)定的最小和最大值之間,其中設(shè)定的最小和最大值,可以是日期、數(shù)值、貨幣或字符串等類型均可。
3.2 屬性
MaximumValue,表最大值,MinimunVlaue表最小值,如年齡要求0-100歲之間。
則MinimumValue=0,MaximumValue=100,type設(shè)置integer即可。
4 RegularExpresionValidator(正則表達(dá)式)控件
4.1 使用說明
在網(wǎng)站注冊功能時(shí),當(dāng)要實(shí)現(xiàn)郵箱的驗(yàn)證是否合法或是身份證號是否是15位或18位或是電話號碼及郵編是否合法時(shí)可以選擇RegularExpresionValidator正則表達(dá)式驗(yàn)證控件。RegularExpressionValidator控件可用來檢查指定控件中的數(shù)據(jù)值是否與設(shè)定的正則表達(dá)式相匹配。正則表達(dá)式驗(yàn)證控件的功能非常強(qiáng)大,讀者也可以自己構(gòu)造驗(yàn)證方式。
4.2 屬性
除了ControlToValidate、ErrorMessage屬性外,此驗(yàn)證控件還有個(gè)非常重要的ValidationExpression屬性,用來選擇正則規(guī)則的驗(yàn)證內(nèi)容,選擇后自動(dòng)顯示正則規(guī)則代碼。當(dāng)然也可以自已設(shè)計(jì)和改造。
下面以驗(yàn)證郵箱的合法性和身份證號碼的合法性來說明此驗(yàn)證控件的應(yīng)用。
相應(yīng)屬性設(shè)計(jì)完畢后,可點(diǎn)擊源,查看其源碼為:
郵箱:
ControlToValidate=\"TextBox4\" ErrorMessage=\"不合法地址\"ValidationExpression=\"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*\">
證件:
ControlToValidate=\"TextBox5\" ErrorMessage=\"輸入有效身份證號\" ValidationExpression=\"\d{17}[\d|X]|\d{15}\">
ASP.NET的驗(yàn)證控件只需要簡單的屬性設(shè)置,就可以實(shí)現(xiàn)其相應(yīng)龐大的驗(yàn)證功能。這是.NET開發(fā)優(yōu)越與其他面向?qū)ο蟪绦蛟O(shè)計(jì)語言的優(yōu)點(diǎn)之一,開發(fā)工作者必須認(rèn)真體會并熟練掌握。
參考文獻(xiàn):
[1]楊成科.基于正則表達(dá)式的模糊查詢和數(shù)據(jù)匹配驗(yàn)證[J].電腦知識與技術(shù),2008.
[2]吳永富.文本框回車自動(dòng)提交——博客園[OL].網(wǎng)絡(luò)(http://www.cnblogs.c),2011.05.31.
[3]盧守東.Web服務(wù)技術(shù)及其應(yīng)用模式[J].電腦知識與技術(shù),2009.
[4]張世海.設(shè)備采購計(jì)劃管理信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].電子科技大學(xué),2012.
[5]刷新后控制TAB鍵到下一個(gè)控件-仁面壽星-博客園[OL].網(wǎng)絡(luò)(http://www.cnblogs.c),2011.03.26.
[6]宋建樵.63837部隊(duì)政工網(wǎng)心理服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].電子科技大學(xué),2012.
作者簡介:肖亞紅,湖南邵陽人,講師,研究方向:計(jì)算機(jī)軟件開發(fā)。
作者單位:湖南汽車工程技術(shù)學(xué)院(株洲職業(yè)技術(shù)學(xué)院),湖南株洲 412001