摘要:正規表達式-驗証輸入的字串
#region "驗証輸入的字串======================================================================================================================"
///
/// 判斷輸入的字串類型。
///
/// 輸入的字串。(string)
/// 要驗証的類型,可選擇之類型如下列表。(int)
///
/// 1: 由26個英文字母組成的字串
/// 2: 正整數
/// 3: 非負整數(正整數 + 0)
/// 4: 非正整數(負整數 + 0)
/// 5: 負整數
/// 6: 整數
/// 7: 非負浮點數(正浮點數 + 0)
/// 8: 正浮點數
/// 9: 非正浮點數(負浮點數 + 0)
/// 10: 負浮點數
/// 11: 浮點數
/// 12: 由26個英文字母的大寫組成的字串
/// 13: 由26個英文字母的小寫組成的字串
/// 14: 由數位和26個英文字母組成的字串
/// 15: 由數位、26個英文字母或者下劃線組成的字串
/// 16: Email
/// 17: URL
/// 18: 只能輸入入中文
/// 19: 只能輸入0和非0打頭的數字
/// 20: 只能輸入數字
/// 21: 只能輸入數字加2位小數
/// 22: 只能輸入0和非0打頭的數字加2位小數
/// 23: 只能輸入0和非0打頭的數字加2位小數,但不匹配0.00
/// 24: "^[0-9]+(.[0-9]{1,3})?$" 該實數只能帶3位小數
/// 26: 驗證日期:YYYYMM
/// 27: 驗證日期: YYYYMMDD
/// 28: 驗證日期:YYYY/MM/DD
/// 驗証通過則傳回 True,反之則為 False。
public bool ValidateString(String _value, int _kind)
{
string RegularExpressions = null;
switch (_kind)
{
case 1:
//由26個英文字母組成的字串
RegularExpressions = "^[A-Za-z]+$";
break;
case 2:
//正整數
RegularExpressions = "^[0-9]*[1-9][0-9]*$";
break;
case 3:
//非負整數(正整數 + 0)
RegularExpressions = "^\\d+$";
break;
case 4:
//非正整數(負整數 + 0)
RegularExpressions = "^((-\\d+)|(0+))$";
break;
case 5:
//負整數
RegularExpressions = "^-[0-9]*[1-9][0-9]*$";
break;
case 6:
//整數
RegularExpressions = "^-?\\d+$";
break;
case 7:
//非負浮點數(正浮點數 + 0)
RegularExpressions = "^\\d+(\\.\\d+)?$";
break;
case 8:
//正浮點數
RegularExpressions = "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$";
break;
case 9:
//非正浮點數(負浮點數 + 0)
RegularExpressions = "^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$";
break;
case 10:
//負浮點數
RegularExpressions = "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$";
break;
case 11:
//浮點數
RegularExpressions = "^(-?\\d+)(\\.\\d+)?$";
break;
case 12:
//由26個英文字母的大寫組成的字串
RegularExpressions = "^[A-Z]+$";
break;
case 13:
//由26個英文字母的小寫組成的字串
RegularExpressions = "^[a-z]+$";
break;
case 14:
//由數位和26個英文字母組成的字串
RegularExpressions = "^[A-Za-z0-9]+$";
break;
case 15:
//由數位、26個英文字母或者下劃線組成的字串
RegularExpressions = "^[0-9a-zA-Z_]+$";
break;
case 16:
//email地址
RegularExpressions = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
break;
case 17:
//url
RegularExpressions = "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$";
break;
case 18:
//只能輸入中文
RegularExpressions = "^[^\u4E00-\u9FA5]";
break;
case 19:
//只能輸入0和非0打頭的數字
RegularExpressions = "^(0|[1-9][0-9]*)$";
break;
case 20:
//只能輸入數字
RegularExpressions = "^[0-9]*$";
break;
case 21:
//只能輸入數字加2位小數
RegularExpressions = "^[0-9]+(.[0-9]{1,2})?$";
break;
case 22:
//只能輸入0和非0打頭的數字加2位小數
RegularExpressions = "^(0|[1-9]+)(.[0-9]{1,2})?$";
break;
case 23:
//只能輸入0和非0打頭的數字加2位小數,但不匹配0.00
RegularExpressions = "^(0(.(0[1-9]|[1-9][0-9]))?|[1-9]+(.[0-9]{1,2})?)$";
break;
case 24:
//驗證日期格式 YYYYMMDD, 範圍19000101~20991231
RegularExpressions = "(19|20)\\d\\d+(0[1-9]|1[012])+(0[1-9]|[12][0-9]|3[01])$";
break;
case 25:
//驗證日期格式 MMDDYYYY
RegularExpressions = "(0[1-9]|1[012])+(0[1-9]|[12][0-9]|3[01])+(19|20)\\d\\d$";
break;
case 26:
//驗證日期格式 YYYYMM
RegularExpressions = "(19|20)\\d\\d+(0[1-9]|1[012])$";
break;
case 27:
//驗證日期格式 YYYYMMDD, 範圍00010101~99991231
RegularExpressions = "(^0000|0001|9999|[0-9]{4})+(0[1-9]|1[0-2])+(0[1-9]|[12][0-9]|3[01])$";
break;
case 28: //驗證日期格式YYYY/MM/DD
RegularExpressions = "^([2][0]\d{2}\/([0]\d|[1][0-2])\/([0-2]\d|[3][0-1]))$|^([2][0]\d{2}\/([0]\d|[1][0-2])\/([0-2]\d|[3][0-1]))$";
break;
case 29: //驗證特殊字元
RegularExpressions = "(?=.*[@#$%^&+=])";
default:
break;
}
Match m = Regex.Match(_value, RegularExpressions);
if (m.Success)
return true;
else
return false;
}
#endregion
=====================================================
正則表達式相關資源:
http://regexlib.com/