資料安全驗證之正規表示式

2021-04-09 09:18:40 字數 3380 閱讀 4811

這幾天正在製作使用者登陸這一塊,使用者登陸其中我覺得最煩人的就是輸入資料的驗證;雖然微軟給了我們幾個強的控制項,但是自己寫正規表示式那是相當的耗時間啊;在網上有很多人在網上發部了很多有用的正規表示式,可能以後會再次用到這些表示式,這裡把它記錄下來;通過驗證控制項並不是100%保險的,因為使用者控制項只是在客戶端驗證,有些無聊的人根本不通來那些來提交資料,所以我們還是要在服務端再次驗證,這樣正規表示式就成為了我們的重要工具啦.

通過這幾天的努力我收集同時也自己寫了幾個正規表示式,look:

1.驗證使用者名稱和密碼:("^[

a-za-z

]/w$")正確格式:"

[a-z

][a-z]_

[0-9

]"組成,並且第乙個字必須為字母6

~16位;

2.驗證**號碼:("

^(/d

-)/d$")正確格式:***

/***x

-******x

/******xx;

3.驗證身份證號(15位或18位數字):("^/d

|/d$");4^

/w+([

-+.]/w+

)*

@/w+([

-.]/w+

)*

/./w+(

[-.]/w

+)

*$");

5.只能輸入由數字和26個英文本母組成的字串:("^[

a-za-z0-9]+

$")  ;

6.整數或者小數:^[

0-9]+/.

[0-9]$

7.只能輸入數字:"^[

0-9]

*$"。

8.只能輸入n位的數字:"

^/d$"。

9.只能輸入至少n位的數字:"

^/d$"。

10.只能輸入m

~n位的數字:。"

^/d$"

11.只能輸入零和非零開頭的數字:"^(

0|

[1-9

][0-9]*

)$"。

12.只能輸入有兩位小數的正實數:"^[

0-9]+(.

[0-9

])?$"。

13.只能輸入有1

~3位小數的正實數:"^[

0-9]+(.

[0-9

])?$"。

14.只能輸入非零的正整數:"^/

+?

[1-9

][0-9]*

$"。15

.只能輸入非零的負整數:"^/

-[

1-9]0-

9"*$。

16.只能輸入長度為3的字元:"

^.$"。

17.只能輸入由26個英文本母組成的字串:"^[

a-za-z]+

$"。18

.只能輸入由26個大寫英文本母組成的字串:"^[

a-z]

+$"。

19.只能輸入由26個小寫英文本母組成的字串:"^[

a-z]

+$"。

20.驗證是否含有

^%&'

,;=?$/"等字元:"[^%&',;

=?$/x22]+"。

21.只能輸入漢字:"^[

/u4e00-/u9fa5]$"

22.驗證url:"

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"。

從上面我們可以看到:"^"表示後面緊跟著的字元為開頭;與之相對應的式"$"以緊跟前面的字元為結尾.但是要注意的式當"^"位於""裡時,表示"非"的意思,例如:[^az]表示不能為"az"中的任乙個字元.""表示當中的乙個字元."{}"可以取得乙個範圍,例如""表示9個,而""表示1到9個字元.

下面我們看看正規表示式在asp.net資料驗證中的應用,第乙個當然式在伺服器驗證控制項中的應用了,很簡單看下面的**:

<

asp:regularexpressionvalidator 

id="regularexpressionvalidator1"

controltovalidate

="username"

validationexpression

="^[a-za-z]/w$"

runat

="server"

errormessage

="使用者名稱格式不正確"

tooltip

="使用者名稱格式不正確!"

>

*asp:regularexpressionvalidator

>

這樣就能滿足我們在客戶端的驗證,控鍵很簡單,id和runat就不用多說了,controltovalidate指的是要驗證控制項的id,這裡是username文字(textbox)控制項,validationexpression一看就知道要添上我們的正規表示式了.如果沒有輸入"*",但為通過驗證時會顯示errormessage裡的內容,當然要預先為顯示這些東西留點空間的哦,不然效果會不好的哦.不過我們可以把所有錯誤的放在validationsummary控制項中.

上面只能用於君子中,有些無聊的人不同過你的這些控制項直接給你的伺服器發資訊,這樣就可能有麻煩了,不用著急,我們可以在服務端新增一點東西:

1using

system;

2using

system.web;3//

一定記住引用此空間.

4using

system.text.regularexpressions;56

namespace

nexplus.validation

10protected

void

submit_click(

object

sender, imageclickeventargs e)11$

",regexoptions.ignorepatternwhitespace))

18//

..19}20

}21}22

}

是不是很easy!我們有深入的研究過這個東東,如果有什麼地方不正確請批評指正,謝謝!

正則表達之 常用正規表示式驗證

純數字 0 9 純數字 6 16位 0 9 驗證輸入帶數字 或純數字,或小數 d d d 驗證漢字 u4e00 u9fa5 驗證只能輸入漢字或英文本元 u4e00 u9fa5 a za z 金額的驗證 或純數字,或小數點後最多兩位,並且整數為必須大於0 1 9 d 1 9 dd?驗證只能輸英文本母,...

驗證正規表示式

純數字 d 純字母 a za z 純特殊字元 ps 特殊字元看你定義的標準是什麼 字母 數字 d a za z a za z d 字母 特殊字元 a za z a za z 數字 特殊字元 d d 字母 數字 特殊字元 d a za z da za z ios使用常用正規表示式驗證密碼身份證手機號 ...

正規表示式驗證

1,正規表示式是用用於驗證的,即符合正規表示式則通過驗證,所以首先它是個表示式,其次它需要用來驗證別人是不是和它匹配,所以需要有內建的 方法 2,使用情景 乙個input輸入框要求你輸入0 9的數字,如果你輸入非數字就會報錯 var reg 0 9 string input val reg.test...