這幾天正在制作用戶登陸這一塊,用戶登陸其中我覺得最煩人的就是輸入數(shù)據(jù)的驗證;雖然微軟給了我們幾個強的控件,但是自己寫正則表達式那是相當(dāng)?shù)暮臅r間啊;在網(wǎng)上有很多人在網(wǎng)上發(fā)部了很多有用的正則表達式,可能以后會再次用到這些表達式,這里把它記錄下來;通過驗證控件并不是100%保險的,因為用戶控件只是在客戶端驗證,有些無聊的人根本不通來那些來提交數(shù)據(jù),所以我們還是要在服務(wù)端再次驗證,這樣正則表達式就成為了我們的重要工具啦.
通過這幾天的努力我收集同時也自己寫了幾個正則表達式,Look:
2.驗證電話號碼:("^(\d{3.4}-)\d{7,8}$")正確格式:xxx/xxxx-xxxxxxx/xxxxxxxx;
3.驗證身份證號(15位或18位數(shù)字):("^\d{15}|\d{18}$");
4.驗證Email地址:("^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");
5.只能輸入由數(shù)字和26個英文字母組成的字符串:("^[A-Za-z0-9]+$") ;
6.整數(shù)或者小數(shù):^[0-9]+\.{0,1}[0-9]{0,2}$
7.只能輸入數(shù)字:"^[0-9]*$"。
8.只能輸入n位的數(shù)字:"^\d{n}$"。
9.只能輸入至少n位的數(shù)字:"^\d{n,}$"。
10.只能輸入m~n位的數(shù)字:。"^\d{m,n}$"
11.只能輸入零和非零開頭的數(shù)字:"^(0|[1-9][0-9]*)$"。
12.只能輸入有兩位小數(shù)的正實數(shù):"^[0-9]+(.[0-9]{2})?$"。
13.只能輸入有1~3位小數(shù)的正實數(shù):"^[0-9]+(.[0-9]{1,3})?$"。
14.只能輸入非零的正整數(shù):"^\+?[1-9][0-9]*$"。
15.只能輸入非零的負整數(shù):"^\-[1-9][]0-9"*$。
16.只能輸入長度為3的字符:"^.{3}$"。
17.只能輸入由26個英文字母組成的字符串:"^[A-Za-z]+$"。
18.只能輸入由26個大寫英文字母組成的字符串:"^[A-Z]+$"。
19.只能輸入由26個小寫英文字母組成的字符串:"^[a-z]+$"。
20.驗證是否含有^%&‘,;=?$\"等字符:"[^%&‘,;=?$\x22]+"。
21.只能輸入漢字:"^[\u4e00-\u9fa5]{0,}$"
22.驗證URL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。
23.驗證一年的12個月:"^(0?[1-9]|1[0-2])$"正確格式為:"01"~"09"和"1"~"12"。
24.驗證一個月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式為;"01"~"09"和"1"~"31"。
從上面我們可以看到:"^"表示后面緊跟著的字符為開頭;與之相對應(yīng)的式"$"以緊跟前面的字符為結(jié)尾.但是要注意的式當(dāng)"^"位于"[]"里時,表示"非"的意思,例如:[^AZ]表示不能為"AZ"中的任一個字符."[]"表示當(dāng)中的一個字符."{}"可以取得一個范圍,例如"{9}"表示9個,而"{1,9}"表示1到9個字符.
下面我們看看正則表達式在Asp.Net數(shù)據(jù)驗證中的應(yīng)用,第一個當(dāng)然式在服務(wù)器驗證控件中的應(yīng)用了,很簡單看下面的代碼:
這樣就能滿足我們在客戶端的驗證,<asp:RegularExpression>控鍵很簡單,ID和runat就不用多說了,ControlToValidate指的是要驗證控件的ID,這里是UserName文本(TextBox)控件,ValidationExpression一看就知道要添上我們的正則表達式了.如果沒有輸入"*",但為通過驗證時會顯示ErrorMessage里的內(nèi)容,當(dāng)然要預(yù)先為顯示這些東西留點空間的哦,不然效果會不好的哦.不過我們可以把所有錯誤的放在ValidationSummary控件中.
上面只能用于君子中,有些無聊的人不同過你的這些控件直接給你的服務(wù)器發(fā)信息,這樣就可能有麻煩了,不用著急,我們可以在服務(wù)端添加一點東西:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22