oracle常用字段正则表达式验证
2014-05-30 19:20
387 查看
<pre name="code" class="csharp">using System; using System.Text; using System.Text.RegularExpressions; namespace Common { /// <summary> /// 验证类 /// </summary> public class Verification { /// <summary> /// 验证字符串是否满足 Varchar2(N) /// </summary> /// <param name="str"></param> /// <param name="N"></param> /// <param name="Nullable">是否允许为空 1允许 0不允许</param> /// <returns></returns> public static bool IsVarchar2N(string str, int N, int Nullable) { if (string.IsNullOrWhiteSpace(str)) return Convert.ToBoolean(Nullable == 1 ? bool.TrueString : bool.FalseString); else return Convert.ToBoolean(GetLength(str) > N ? bool.FalseString : bool.TrueString); } /// <summary> /// 验证是否满足数据类型 Number(N) /// </summary> /// <param name="str"></param> /// <param name="N"></param> /// <param name="Nullable">是否允许为空 1允许 0不允许</param> /// <returns>验证通过返回True</returns> public static bool IsNumberN(string str, int N, int Nullable) { if (string.IsNullOrWhiteSpace(str)) return Convert.ToBoolean(Nullable == 1 ? bool.TrueString : bool.FalseString); else { N = N - 1; //^[1-9]\d{0,3}$ if (Regex.IsMatch(str, string.Format(@"^0|[1-9]\d{{0,{0}}}$", N))) //0 或非0开头的数字 return true; return false; } } /// <summary> /// 验证是否满足数据类型 Number(M,N) /// </summary> /// <param name="str"></param> /// <param name="Nullable">是否允许为空 1允许 0不允许</param> /// <param name="M">整数位最多可以有M位</param> /// <param name="N">小数位最多可有N位整数</param> /// <returns>验证通过返回True</returns> public static bool IsNumberMN(string str, int M, int N, int Nullable) { //^[-\+]{0,1}\d{1,12}(\.\d{1,3})?$ if (string.IsNullOrWhiteSpace(str)) return Convert.ToBoolean(Nullable == 1 ? bool.TrueString : bool.FalseString); else { string regStr = string.Format(@"^[-\+]?\d{{1,{0}}}(\.\d{{1,{1}}})?$", M, N); if (Regex.IsMatch(str, regStr)) return true; return false; } //M = M - 1;//第一位的0或非0要占1位 M值表示第一位之后的整数位个数 ////^(0|[1-9][0-9]{0,2})(.[0-9]{1,3})?$ //if (string.IsNullOrWhiteSpace(str)) //{ // return Convert.ToBoolean(Nullable == 1 ? bool.TrueString : bool.FalseString); //} //else //{ // string regStr = @"^(0|[1-9][0-9]{0," + M + "})(.[0-9]{1," + N + "})?$"; // if (Regex.IsMatch(str, regStr)) // { // return true; // } // return false; //} } /// <summary> /// 获取字符串长度,一个汉字算两个字节 /// </summary> /// <param name="str"></param> /// <returns></returns> private static int GetLength(string str) { if (str.Length == 0) return 0; ASCIIEncoding ascii = new ASCIIEncoding(); int tempLen = 0; byte[] s = ascii.GetBytes(str); for (int i = 0; i < s.Length; i++) { if ((int)s[i] == 63) tempLen += 2; else tempLen += 1; } return tempLen; } /// <summary> /// 验证是否满足邮箱规则 /// 合法数据实例:1.1@1.1.1 /// </summary> /// <param name="str"></param> /// <param name="Nullable">是否允许为空 1允许 0不允许</param> /// <returns></returns> public static bool IsMail(string str, int Nullable) { if (string.IsNullOrWhiteSpace(str)) return Convert.ToBoolean(Nullable == 1 ? bool.TrueString : bool.FalseString); else { if (Regex.IsMatch(str, @"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$")) return true; return false; } } /// <summary> /// 验证是否符合电话号或是手机号规则 /// 1、可以是1开头的11位数字(手机号) /// 2、可以是“区号-电话号-分机号”或者是“(区号)电话号-分机号”格式 /// 3、区号是0开头的3~4位数字,可以没有区号 /// 4、电话号是5~8位数字,不能以0开头 /// 5、分机号是1~8位数字,可以没有分机号 /// 合法数据示例:13812341234,021-12345678,(0451)1234567-1234 /// </summary> /// <param name="str"></param> /// <param name="Nullable">是否允许为空 1允许 0不允许</param> /// <returns></returns> public static bool IsPhoneNumber(string str, int Nullable) { if (string.IsNullOrWhiteSpace(str)) return Convert.ToBoolean(Nullable == 1 ? bool.TrueString : bool.FalseString); else { if (Regex.IsMatch(str, @"^1\d{10}$|^(0\d{2,3}-?|\(0\d{2,3}\))?[1-9]\d{4,7}(-\d{1,8})?$")) return true; return false; } } /// <summary> /// 验证是否是符合传真规则(国内传真) /// 有效数据实例:021-12345678 /// </summary> /// <param name="str"></param> /// <param name="Nullable">是否允许为空 1允许 0不允许</param> /// <returns></returns> public static bool IsFax(string str, int Nullable) { if (string.IsNullOrWhiteSpace(str)) return Convert.ToBoolean(Nullable == 1 ? bool.TrueString : bool.FalseString); else { if (Regex.IsMatch(str, @"^(\d{3,4}-)?\d{7,8}$")) return true; return false; } } /// <summary> /// 验证是否符合邮编规则(6位数字即可) /// </summary> /// <param name="str"></param> /// <param name="Nullable">是否允许为空 1允许 0不允许</param> /// <returns></returns> public static bool IsPostCode(string str, int Nullable) { if (string.IsNullOrWhiteSpace(str)) return Convert.ToBoolean(Nullable == 1 ? bool.TrueString : bool.FalseString); else { if (Regex.IsMatch(str, @"^\d{6}$")) return true; return false; } } } }
相关文章推荐
- 常用的正则表达式(转)及在C#代码中用正则表达式验证数据(转)
- 常用的正则表达式验证类
- 常用的JavaScript验证正则表达式
- 常用正则表达式 新旧身份证合法性验证及相互转换算法
- 常用的JavaScript验证正则表达式
- 常用正则表达式(验证版)
- 常用的JavaScript验证正则表达式
- js验证常用正则表达式集锦
- 常用的JavaScript验证正则表达式
- 身份验证常用正则表达式
- 验证控件中一些常用的正则表达式
- Js:常用的正则表达式验证函数
- 常用的JavaScript验证正则表达式
- 常用正则表达式(验证版)
- 身份验证常用正则表达式
- asp下常用正则表达式及字符串验证方法
- js验证常用正则表达式集锦
- [收藏]几个常用的用正则表达式验证字符串的函数
- asp.net常用的正则表达式字段
- JavaScript常用验证代码(正则表达式)(转自cnblogs)