ASP NET表單驗(yàn)證方法詳解_第1頁
ASP NET表單驗(yàn)證方法詳解_第2頁
ASP NET表單驗(yàn)證方法詳解_第3頁
ASP NET表單驗(yàn)證方法詳解_第4頁
ASP NET表單驗(yàn)證方法詳解_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、ASP NET表單驗(yàn)證方法詳解ASP.NET表單驗(yàn)證方法詳解2011-01-10 14:33在表單提交的時(shí)候,經(jīng)常需要對錄入信息的長度、格式、內(nèi)容等進(jìn)行驗(yàn)證,以便獲得合理的信息。在ASP.NET開發(fā)中主要的驗(yàn)證方法,我總結(jié)了一下,主要有一下幾種,如有不足之處請朋友們予以指出。1、使用驗(yàn)證控件這屬于客戶端驗(yàn)證,微軟開發(fā)人員將最常用的驗(yàn)證功能進(jìn)行了封裝,使得我們開發(fā)效率明顯提高,而且特別是自定義驗(yàn)證控件,非常靈活,我們可以自行設(shè)計(jì)驗(yàn)證邏輯。但是驗(yàn)證控件收到了瀏覽器的限制,記得在一次開發(fā)過程中,使用FireFox瀏覽器進(jìn)行瀏覽,發(fā)現(xiàn)所有的驗(yàn)證控件失靈,這個(gè)并非是ASP.NET設(shè)計(jì)的漏洞,只能說瀏覽器

2、標(biāo)準(zhǔn)的不唯一造成的。ASP.NET公有六種驗(yàn)證控件,分別如下:RequiredFieldValidator(必須字段驗(yàn)證)用于檢查是否有輸入值CompareValidator(比較驗(yàn)證)按設(shè)定比較兩個(gè)輸入RangeValidator(范圍驗(yàn)證)輸入是否在指定范圍RegularExpressionValidator(正則表達(dá)式驗(yàn)證)正則表達(dá)式驗(yàn)證控件CustomValidator(自定義驗(yàn)證)自定義驗(yàn)證控件ValidationSummary(驗(yàn)證總結(jié))總結(jié)驗(yàn)證結(jié)果2、使用JS驗(yàn)證JS驗(yàn)證,出現(xiàn)的比較早,也屬于客戶端驗(yàn)證,其靈活、適用的性能深得人們的喜好。3、后臺程序驗(yàn)證盡管客戶端驗(yàn)證比較靈活,但

3、是其局限性也很明顯,服務(wù)器端驗(yàn)證必不可少。(1)安全性如若惡意攻擊者,將客戶端頁面的驗(yàn)證控件和JS驗(yàn)證全部抹去,而服務(wù)器端又沒有做出有效的驗(yàn)證處理,必將給攻擊者帶來很大的漏洞,其后果不堪設(shè)想。(2)客戶端驗(yàn)證的局限性,比如用戶注冊,需要判定用戶名是否存在,這個(gè)需要從數(shù)據(jù)庫查詢進(jìn)行判定.(3)功能強(qiáng)大各種驗(yàn)證功能都可以在這里實(shí)現(xiàn)。缺點(diǎn):增加服務(wù)器端負(fù)擔(dān)4、Ajax類的驗(yàn)證這個(gè)結(jié)合了客戶端驗(yàn)證和服務(wù)器端驗(yàn)證。因?yàn)槭褂胊jax框架,性能上付出的代價(jià)較小,但是用戶體驗(yàn)和編碼的簡易度提高了。而在進(jìn)行驗(yàn)證過程中,對于不同格式的驗(yàn)證,就需要強(qiáng)大靈活的正則表達(dá)式了。使用正則表達(dá)式進(jìn)行驗(yàn)證:在編寫處理字符串的程

4、序或網(wǎng)頁時(shí),經(jīng)常會有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達(dá)式就是用于描述這些規(guī)則的工具。換句話說,正則表達(dá)式就是記錄文本規(guī)則的代碼。正則表達(dá)式用于字符串處理、表單驗(yàn)證等場合,實(shí)用高效,所以其應(yīng)用非常廣泛,下面我就通過幾個(gè)例子來說明正則表達(dá)式在驗(yàn)證中的具體應(yīng)用。在這里我以驗(yàn)證電話號碼的格式為例進(jìn)行介紹。1使用JS驗(yàn)證復(fù)制代碼代碼如下:asp:Button ID="Button2"runat="server"Text="測試"OnClientClick="return checkCellPhone();"OnCl

5、ick="Button2_Click"/驗(yàn)證手機(jī)的JS代碼復(fù)制代碼代碼如下:script type="text/javascript"function checkCellPhone()/驗(yàn)證手機(jī)var mobile=document.getElementById("tbMobile").value;if(mobile!="")var reg0=/13d5,9$/;/130-139。至少7位var reg1=/153d4,8$/;/聯(lián)通153。至少7位var reg2=/159d4,8$/;/移動(dòng)159。至少7位va

6、r reg3=/158d4,8$/;/移動(dòng)158。至少7位if(reg0.test(mobile)|reg1.test(mobile)|reg2.test(mobile)|reg3.test(mobile)return true;elsealert("手機(jī)號格式錯(cuò)誤!");document.getElementById("tbMobile").focus();return false;elsealert("手機(jī)號不能為空!");document.getElementById("tbMobile").focus();

7、return false;/script在表單提交的時(shí)候,經(jīng)常需要對錄入信息的長度、格式、內(nèi)容等進(jìn)行驗(yàn)證,以便獲得合理的信息。在ASP.NET開發(fā)中主要的驗(yàn)證方法,我總結(jié)了一下,主要有一下幾種,如有不足之處請朋友們予以指出。2使用驗(yàn)證控件自定義驗(yàn)證控件:復(fù)制代碼代碼如下:asp:CustomValidator ID="CustomValidator2"runat="server"ControlToValidate="tbMobile"ClientValidationFunction="checkCellPhone"

8、/asp:CustomValidator正則表達(dá)式驗(yàn)證控件(當(dāng)然這種方法需要加入非空驗(yàn)證)復(fù)制代碼代碼如下:asp:RegularExpressionValidator ID="revPhone"runat="server"ControlToValidate="tbPhone"ValidationExpression="(013|015|13|15)d9$"ErrorMessage="手機(jī)號碼格式錯(cuò)誤!"/asp:RegularExpressionValidator 3使用服務(wù)器端程序驗(yàn)證復(fù)制代

9、碼代碼如下:public static bool ValidatePhone(string phone)return System.Text.RegularExpressions.Regex.IsMatch(phone,"1+3,5+d9");上述的是一個(gè)簡單的應(yīng)用實(shí)例,只要你知道正則表達(dá)式的寫法,你可以隨意將上面實(shí)例中的正則表達(dá)式進(jìn)行替換,將一些邏輯進(jìn)行修改,就能夠滿足你在驗(yàn)證方面,可以說足夠滿足你常用的驗(yàn)證。在這里我也收集了一些常用的正則表達(dá)式,希望能夠?qū)Υ蠹矣兴鶐椭?。?fù)制代碼代碼如下:匹配中文字符的正則表達(dá)式:u4e00-u9fa5匹配雙字節(jié)字符(包括漢字在內(nèi)):x0

10、0-xff備注:可以用來計(jì)算字符串的長度(一個(gè)雙字節(jié)字符長度計(jì)2,ASCII字符計(jì)1)匹配空白行的正則表達(dá)式:ns*r備注:可以用來刪除空白行匹配HTML標(biāo)記的正則表達(dá)式:(S*?)*.*?/|.*?/備注:網(wǎng)上流傳的版本太糟糕,上面這個(gè)也僅僅能匹配部分,對于復(fù)雜的嵌套標(biāo)記依舊無能為力匹配首尾空白字符的正則表達(dá)式:s*|s*$備注:可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等),非常有用的表達(dá)式匹配Email地址的正則表達(dá)式:w+(-+.w+)*w+(-.w+)*.w+(-.w+)*匹配網(wǎng)址URL的正則表達(dá)式:a-zA-z+:/s*匹配帳號是否合法(字母開頭,允許5-16字節(jié),

11、允許字母數(shù)字下劃線):a-zA-Za-zA-Z0-9_4,15$匹配國內(nèi)電話號碼:d3-d8|d4-d7備注:匹配形式021-87888822匹配騰訊QQ號:1-90-94,備注:騰訊QQ號從10000開始匹配中國郵政編碼:1-9d5(?!d)備注:中國郵政編碼為6位數(shù)字匹配身份證:d15|d18備注:中國的身份證為15位或18位匹配ip地址:d+.d+.d+.d+備注:提取ip地址時(shí)有用匹配特定數(shù)字:1-9d*$/匹配正整數(shù)-1-9d*$/匹配負(fù)整數(shù)-?1-9d*$/匹配整數(shù)1-9d*|0$/匹配非負(fù)整數(shù)(正整數(shù)+0)-1-9d*|0$/匹配非正整數(shù)(負(fù)整數(shù)+0)1-9d*.d*|0.d*1-9d*$/匹配正浮點(diǎn)數(shù)-(1-9d*.d*|0.d*1-9d*)$/匹配負(fù)浮點(diǎn)數(shù)-?(1-9d*.d*|0.d*1-9d*|0?.0+|0)$/匹配浮點(diǎn)數(shù)1-9d*.d*|0.d*1-9d*|0?.0+|0$/匹配非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù)+0)(-(1-9d*.d*|0.d*1-9d*)|0?.0+|

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論