(一)字母、數字、下劃線、漢字正規表達式
1. 隻有字母、數字和下劃線且不能以下劃線開頭和結尾的正規表達式:^(?!_)(?!.*?_$)[a-za-z0-9_]+$
隻有字母和數字的: ^[a-za-z0-9_]+$
2. 至少一個漢字、數字、字母、下劃線: "[a-za-z0-9_\u4e00-\u9fa5]+"
3. 至少一個漢字的正規表達式:"^[\u4e00-\u9fa5]"
4. 最多10個漢字: validationexpression="^[\u4e00-\u9fa5]{0,10}"
5. 隻含有漢字、數字、字母、下劃線不能以下劃線開頭和結尾:^(?!_)(?!.*?_$)[a-za-z0-9_\u4e00-\u9fa5]+$
解釋:
^ 與字元串開始的地方比對
(?!_) 不能以_開頭
(?!.*?_$) 不能以_結尾
[a-za-z0-9_\u4e00-\u9fa5]+ 至少一個漢字、數字、字母、下劃線
$ 與字元串結束的地方比對
6.一個正規表達式,隻含有漢字、數字、字母、下劃線不能以下劃線開頭和結尾:
^(?!_)(?!.*?_$)[a-za-z0-9_\u4e00-\u9fa5]+$
解釋:
^ 與字元串開始的地方比對
(?!_) 不能以_開頭
(?!.*?_$) 不能以_結尾
[a-za-z0-9_\u4e00-\u9fa5]+ 至少一個漢字、數字、字母、下劃線
$ 與字元串結束的地方比對
放在程式裡前面加@,否則需要\\進行轉義 @"^(?!_)(?!.*?_$)[a-za-z0-9_\u4e00-\u9fa5]+$"
(或者:@"^(?!_)\w*(?<!_)$" 或者 @" ^[\u4e00-\u9fa50-9a-za-z_]+$ " )
7、隻含有漢字、數字、字母、下劃線,下劃線位置不限:
^[a-za-z0-9_\u4e00-\u9fa5]+$
8、由數字、26個英文字母或者下劃線組成的字元串
^\w+$
9、2~4個漢字
@"^[\u4e00-\u9fa5]{2,4}$";
(二) 整數與浮點數
^[1-9]\d*$ //比對正整數
^-[1-9]\d*$ //比對負整數
^-?[1-9]\d*$ //比對整數
^[1-9]\d*|0$ //比對非負整數(正整數 + 0)
^-[1-9]\d*|0$ //比對非正整數(負整數 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //比對正浮點數
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //比對負浮點數
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //比對浮點數
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //比對非負浮點數(正浮點數 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //比對非正浮點數(負浮點數 + 0)
e-mail正規表達式:
email正規表達式:兩種方式都可以
(1) \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
(2) ^[_a-za-z0-9-]+(\\.[_a-za-z0-9-]+)*@[a-za-z0-9-]+(\\.[a-za-z0-9-]+)*((\\.[a-za-z]{2,}){1}$)
國際域名格式如下:
域名由各國文字的特定字元集、英文字母、數字及“-”(即連字元或減号)任意組合而成, 但開頭及結尾均不能含有“-”,“-”不能連續出現 。 域名中字母不分大小寫。域名最長可達60個位元組(包括字尾.com、.net、.org等)。
/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i;
解釋:
/内容/i 構成一個不區分大小寫的正規表達式;
^ 比對開始
$ 比對結束
[a-z] e-mail字首必需是一個英文字母開頭
([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2比對,和a1_、aaff_33a_、a__aa不比對,如果是空字元,也是比對的,*表示0個或者多個。
* 表示0個或多個前面的字元.
[a-z0-9]* 比對0個或多個英文字母或者數字
[-_]? 比對0個或1“-”,因為“-”不能連續出現
[a-z0-9]+ 比對1個或多個英文字母或者數字,因為“-”不能做為結尾
@ 必需有個有@
([a-z0-9]*[-_]?[a-z0-9]+)+ 見上面([a-z0-9]*[-_]?[a-z0-9]+)*解釋,但是不能為空,+表示一個或者為多個。
[\.] 将特殊字元(.)當成普通字元
[a-z]{2,3} 比對2個至3個英文字母,一般為com或者net等.
([\.][a-z]{2})? 比對0個或者1個[\.][a-z]{2}(比如.cn等) 我不知道一般.com.cn最後部份是不是都是兩位的,如果不是請修改{2}為{起始字數,結束字數}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
public bool regexname(string str)
{
bool flag=regex.ismatch(str,@"^[a-za-z0-9_\u4e00-\u9fa5]+$");
return flag;
}
regex reg=new regex("^[a-za-z_0-9]+$");
if(reg.ismatch(s))
{
\\符合規則
}
else
\\存在非法字元
}
、、、、、、、、、、、、、、、、、、、、、、、、
import java.util.regex.matcher;
import java.util.regex.pattern;
public list<map<string, string>> getuser(string deptid) {
pattern pattern = pattern.compile("^[a-za-z0-9_]+$");
matcher matcher = pattern.matcher(deptid);
if (matcher.find()) {
//如果比對
}else{
//不比對
}
}