版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版承包工地食堂餐廚垃圾處理合同模板3篇
- 2024蔬菜加工產(chǎn)品銷售合作協(xié)議3篇
- 2024年股權(quán)轉(zhuǎn)讓合同標(biāo)的及屬性詳細(xì)描述
- 2024年版物業(yè)托管服務(wù)協(xié)議版B版
- 二零二五版離婚協(xié)議書起草與審核合同2篇
- 2024版房屋贈與合同協(xié)議書大全
- 天津中德應(yīng)用技術(shù)大學(xué)《教育技術(shù)與傳播》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版家政服務(wù)+家庭健康促進(jìn)合同3篇
- 太原幼兒師范高等專科學(xué)?!段麽t(yī)外科學(xué)醫(yī)學(xué)免疫學(xué)與病原生物學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年特殊用途變壓器安裝與性能測試合同2篇
- 《浸沒式液冷冷卻液選型要求》
- 迪士尼樂園總體規(guī)劃
- 2024年江蘇省蘇州市中考數(shù)學(xué)試卷含答案
- 2024年世界職業(yè)院校技能大賽高職組“市政管線(道)數(shù)字化施工組”賽項(xiàng)考試題庫
- 介紹蝴蝶蘭課件
- 大學(xué)計(jì)算機(jī)基礎(chǔ)(第2版) 課件 第1章 計(jì)算機(jī)概述
- 數(shù)字化年終述職報(bào)告
- 2024年職工普法教育宣講培訓(xùn)課件
- 安保服務(wù)評分標(biāo)準(zhǔn)
- T-SDLPA 0001-2024 研究型病房建設(shè)和配置標(biāo)準(zhǔn)
- (人教PEP2024版)英語一年級上冊Unit 1 教學(xué)課件(新教材)
評論
0/150
提交評論