一轴总、校驗數(shù)字的表達(dá)式
1 數(shù)字: ^[0-9]$
2 n位的數(shù)字: ^\d{n}$
3 至少n位的數(shù)字: ^\d{n,}$
4 m-n位的數(shù)字:^\d{m,n}$
5 零和非零開頭的數(shù)字:^(0|[1-9][0-9]*)$
6 非零開頭的最多帶兩位小數(shù)的數(shù)字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
7 帶1-2位小數(shù)的正數(shù)或負(fù)數(shù):^(\-)?\d+(\.\d{1,2})?$
8 正數(shù)帮非、負(fù)數(shù)氧吐、和小數(shù):^(\-|\+)?\d+(\.\d+)?$
9 有兩位小數(shù)的正實數(shù):^[0-9]+(.[0-9]{2})?$
10 有1~3位小數(shù)的正實數(shù):^[0-9]+(.[0-9]{1,3})?$
11 非零的正整數(shù):^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
12 非零的負(fù)整數(shù):^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$
13 非負(fù)整數(shù):^\d+$ 或 ^[1-9]\d*|0$
14 非正整數(shù):^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
15 非負(fù)浮點數(shù):^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
16 非正浮點數(shù):^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
17 正浮點數(shù):^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
18 負(fù)浮點數(shù):^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
19 浮點數(shù):^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
二、校驗字符的表達(dá)式
1 漢字:^[\u4e00-\u9fa5]{0,}$
2 英文和數(shù)字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
3 長度為3-20的所有字符:^.{3,20}$
4 由26個英文字母組成的字符串:^[A-Za-z]+$
5 由26個大寫英文字母組成的字符串:^[A-Z]+$
6 由26個小寫英文字母組成的字符串:^[a-z]+$
7 由數(shù)字和26個英文字母組成的字符串:^[A-Za-z0-9]+$
8 由數(shù)字末盔、26個英文字母或者下劃線組成的字符串:^\w+$ 或 ^\w{3,20}$
9 中文筑舅、英文、數(shù)字包括下劃線:^[\u4E00-\u9FA5A-Za-z0-9_]+$
10 中文陨舱、英文翠拣、數(shù)字但不包括下劃線等符號:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
11 可以輸入含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+
12 禁止輸入含有~的字符:[^~\x22]+
三、特殊需求表達(dá)式
1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
3 InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
4 手機號碼:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
5 電話號碼("XXX-XXXXXXX"游盲、"XXXX-XXXXXXXX"误墓、"XXX-XXXXXXX"邦尊、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
6 國內(nèi)電話號碼(0511-4405222优烧、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
7 身份證號(15位、18位數(shù)字):^\d{15}|\d{18}$
8 短身份證號碼(數(shù)字链峭、字母x結(jié)尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
9 帳號是否合法(字母開頭畦娄,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
10 密碼(以字母開頭弊仪,長度在6~18之間熙卡,只能包含字母、數(shù)字和下劃線):^[a-zA-Z]\w{5,17}$
11 強密碼(必須包含大小寫字母和數(shù)字的組合励饵,不能使用特殊字符驳癌,長度在8-10之間):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
12 日期格式:^\d{4}-\d{1,2}-\d{1,2}
13 一年的12個月(01~09和1~12):^(0?[1-9]|1[0-2])$
14 一個月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
16 1.有四種錢的表示形式我們可以接受:"10000.00" 和 "10,000.00", 和沒有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$
17 2.這表示任意一個不以0開頭的數(shù)字,但是,這也意味著一個字符"0"不通過,所以我們采用下面的形式:^(0|[1-9][0-9]*)$
18 3.一個0或者一個不以0開頭的數(shù)字.我們還可以允許開頭有一個負(fù)號:^(0|-?[1-9][0-9]*)$
19 4.這表示一個0或者一個可能為負(fù)的開頭不為0的數(shù)字.讓用戶以0開頭好了.把負(fù)號的也去掉,因為錢總不能是負(fù)的吧.下面我們要加的是說明可能的小數(shù)部分:^[0-9]+(.[0-9]+)?$
20 5.必須說明的是,小數(shù)點后面至少應(yīng)該有1位數(shù),所以"10."是不通過的,但是 "10" 和 "10.2" 是通過的:^[0-9]+(.[0-9]{2})?$
21 6.這樣我們規(guī)定小數(shù)點后面必須有兩位,如果你認(rèn)為太苛刻了,可以這樣:^[0-9]+(.[0-9]{1,2})?$
22 7.這樣就允許用戶只寫一位小數(shù).下面我們該考慮數(shù)字中的逗號了,我們可以這樣:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
23 8.1到3個數(shù)字,后面跟著任意個 逗號+3個數(shù)字,逗號成為可選,而不是必須:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
24 備注:這就是最終結(jié)果了,別忘了"+"可以用"*"替代如果你覺得空字符串也可以接受的話(奇怪,為什么?)最后,別忘了在用函數(shù)時去掉去掉那個反斜杠,一般的錯誤都在這里
25 xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
26 中文字符的正則表達(dá)式:[\u4e00-\u9fa5]
27 雙字節(jié)字符:[^\x00-\xff] (包括漢字在內(nèi),可以用來計算字符串的長度(一個雙字節(jié)字符長度計2役听,ASCII字符計1))28 空白行的正則表達(dá)式:\n\s*\r (可以用來刪除空白行)
29 HTML標(biāo)記的正則表達(dá)式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (網(wǎng)上流傳的版本太糟糕颓鲜,上面這個也僅僅能部分,對于復(fù)雜的嵌套標(biāo)記依舊無能為力)30 首尾空白字符的正則表達(dá)式:^\s*|\s*$或(^\s*)|(\s*$) (可以用來刪除行首行尾的空白字符(包括空格典予、制表符甜滨、換頁符等等),非常有用的表達(dá)式)
31 騰訊QQ號:[1-9][0-9]{4,} (騰訊QQ號從10000開始)
32 中國郵政編碼:[1-9]\d{5}(?!\d) (中國郵政編碼為6位數(shù)字)
33 IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址時有用)34 IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))
"^\d+$" //非負(fù)整數(shù)(正整數(shù) + 0)
"^[0-9]*[1-9][0-9]*$" //正整數(shù)
"^((-\d+)|(0+))$" //非正整數(shù)(負(fù)整數(shù) + 0)
"^-[0-9]*[1-9][0-9]*$" //負(fù)整數(shù)
"^-?\d+$" //整數(shù)
"^\d+(\.\d+)?$" //非負(fù)浮點數(shù)(正浮點數(shù) + 0)
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮點數(shù)
"^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //非正浮點數(shù)(負(fù)浮點數(shù) + 0)
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //負(fù)浮點數(shù)
"^(-?\d+)(\.\d+)?$" //浮點數(shù)
"^[A-Za-z]+$" //由26個英文字母組成的字符串
"^[A-Z]+$" //由26個英文字母的大寫組成的字符串
"^[a-z]+$" //由26個英文字母的小寫組成的字符串
"^[A-Za-z0-9]+$" //由數(shù)字和26個英文字母組成的字符串
"^\w+$" //由數(shù)字瘤袖、26個英文字母或者下劃線組成的字符串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url
整數(shù)或者小數(shù):^[0-9]+\.{0,1}[0-9]{0,2}$
只能輸入數(shù)字:"^[0-9]*$"衣摩。
只能輸入n位的數(shù)字:"^\d{n}$"。
只能輸入至少n位的數(shù)字:"^\d{n,}$"捂敌。
只能輸入m~n位的數(shù)字:艾扮。"^\d{m,n}$"
只能輸入零和非零開頭的數(shù)字:"^(0|[1-9][0-9]*)$"。
只能輸入有兩位小數(shù)的正實數(shù):"^[0-9]+(.[0-9]{2})?$"占婉。
只能輸入有1~3位小數(shù)的正實數(shù):"^[0-9]+(.[0-9]{1,3})?$"泡嘴。
只能輸入非零的正整數(shù):"^\+?[1-9][0-9]*$"。
只能輸入非零的負(fù)整數(shù):"^\-[1-9][]0-9"*$锐涯。
只能輸入長度為3的字符:"^.{3}$"磕诊。
只能輸入由26個英文字母組成的字符串:"^[A-Za-z]+$"。
只能輸入由26個大寫英文字母組成的字符串:"^[A-Z]+$"纹腌。
只能輸入由26個小寫英文字母組成的字符串:"^[a-z]+$"霎终。
只能輸入由數(shù)字和26個英文字母組成的字符串:"^[A-Za-z0-9]+$"。
只能輸入由數(shù)字升薯、26個英文字母或者下劃線組成的字符串:"^\w+$"莱褒。
驗證用戶密碼:"^[a-zA-Z]\w{5,17}$"正確格式為:以字母開頭,長度在6~18之間涎劈,只能包含字符广凸、數(shù)字和下劃線阅茶。
驗證是否含有^%&'',;=?$\"等字符:"[^%&'',;=?$\x22]+"。
只能輸入漢字:"^[\u4e00-\u9fa5]{0,}$"
驗證Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"谅海。
驗證InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"脸哀。
驗證電話號碼:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正確格式為:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"扭吁、"XXX-XXXXXXX"撞蜂、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"侥袜。
驗證身份證號(15位或18位數(shù)字):"^\d{15}|\d{18}$"蝌诡。
驗證一年的12個月:"^(0?[1-9]|1[0-2])$"正確格式為:"01"~"09"和"1"~"12"。
驗證一個月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式
為枫吧;"01"~"09"和"1"~"31"浦旱。
整數(shù)或者小數(shù):^[0-9]+\.{0,1}[0-9]{0,2}$
"^\w+$" //由數(shù)字、26個英文字母或者下劃線組成的字符串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url
可輸入形如2008九杂、2008-9颁湖、2008-09、2008-9-9尼酿、2008-09-09. ^(\d{4}|(\d{4}-\d{1,2})|(\d{4}-\d{1,2}-\d{1,2}))$
郵箱驗證正則表達(dá)式 \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
一.網(wǎng)絡(luò)驗證應(yīng)用技巧
- 驗證 E-mail格式
public bool IsEmail(string str_Email)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_Email,@"^([\w-\.]+)@(([?9]1,3\.[?9]1,3\.[?9]1,3\.)|(([\w?]+\.)+))([a?zA?Z]2,4|[?9]1,3)(?)$");
}
- 驗證 IP 地址
public bool IPCheck(string IP)
{
string num = "(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)";
return Regex.IsMatch(IP,("^" + num + "\\." + num + "\\." + num + "\\." + num + "$"));
}
- 驗證 URL
public bool IsUrl(string str_url)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_url, @"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?");
}
二. 常用數(shù)字驗證技巧
1. 驗證電話號碼
public bool IsTelephone(string str_telephone)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_telephone, @"^(\d{3,4}-)?\d{6,8}$");
}
- 輸入密碼條件(字符與數(shù)據(jù)同時出現(xiàn))
public bool IsPassword(string str_password)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_password, @"[A-Za-z]+[0-9]");
}
- 郵政編號
public bool IsPostalcode(string str_postalcode)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_postalcode, @"^\d{6}$");
}
- 手機號碼
public bool IsHandset(string str_handset)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_handset, @"^[1]+[3,5]+\d{9}$");
}
- 身份證號
public bool IsIDcard(string str_idcard)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_idcard, @"(^\d{18}$)|(^\d{15}$)");
}
- 兩位小數(shù)
public bool IsDecimal(string str_decimal)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_decimal, @"^[0-9]+(.[0-9]{2})?$");
}
- 一年的12個月
public bool IsMonth(string str_Month)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_Month, @"^(0?[[1-9]|1[0-2])$");
}
- 一個月的31天
public bool IsDay(string str_day)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_day, @"^((0?[1-9])|((1|2)[0-9])|30|31)$");
}
- 數(shù)字輸入
public bool IsNumber(string str_number)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_number, @"^[0-9]*$");
}
- 密碼長度 (6-18位)
public bool IsPasswLength(string str_Length)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_Length, @"^\d{6,18}$");
}
- 非零的正整數(shù)
public bool IsIntNumber(string str_intNumber)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_intNumber, @"^\+?[1-9][0-9]*$");
}
三. 常用字符驗證技巧
- 大寫字母
public bool IsUpChar(string str_UpChar)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_UpChar, @"^[A-Z]+$");
}
- 小寫字母
public bool IsLowChar(string str_UpChar)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_UpChar, @"^[a-z]+$");
}
- 檢查字符串重復(fù)出現(xiàn)的詞
private void btnWord_Click(object sender, EventArgs e)
{
System.Text.RegularExpressions.MatchCollection matches = System.Text.RegularExpressions.Regex.Matches(label1.Text, @"\b(?<word>\w+)\s+(\k<word>)\b", System.Text.RegularExpressions.RegexOptions.Compiled | System.Text.RegularExpressions.RegexOptions.IgnoreCase);
if (matches.Count != 0)
{
foreach (System.Text.RegularExpressions.Match match in matches)
{
string word = match.Groups["word"].Value;
MessageBox.Show(word.ToString(),"英文單詞");
}
}
else { MessageBox.Show("沒有重復(fù)的單詞"); }
}
- 替換字符串
private void button1_Click(object sender, EventArgs e)
{
string strResult = System.Text.RegularExpressions.Regex.Replace(textBox1.Text, @"[A-Za-z]\*?", textBox2.Text);
MessageBox.Show("替換前字符:" + "\n" + textBox1.Text + "\n" + "替換的字符:" + "\n" + textBox2.Text + "\n" + "替換后的字符:" + "\n" + strResult,"替換"); }
- 拆分字符串
private void button1_Click(object sender, EventArgs e)
{
//實例: 甲025-8343243乙0755-2228382丙029-32983298389289328932893289丁
foreach (string s in System.Text.RegularExpressions.Regex.Split(textBox1.Text,@"\d{3,4}-\d*"))
{
textBox2.Text+=s; //依次輸出 "甲乙丙丁"
}
}
- 驗證輸入字母
public bool IsLetter(string str_Letter)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_Letter, @"^[A-Za-z]+$");
}
- 驗證輸入漢字
public bool IsChinese(string str_chinese)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_chinese, @"^[\u4e00-\u9fa5],{0,}$");
}
- 驗證輸入字符串 (至少8個字符)
public bool IsLength(string str_Length)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_Length, @"^.{8,}$");
}