Asp.net(C#)常用正则表达式封装
- using System;
- using System.Collections;
- using System.Text.RegularExpressions;
- namespace MSCL
- {
- //// <summary>
- /// RegularMatch正则验证类
- /// </summary>
- public class RegHelper
- {
- private string _String;
- private bool _IsEntirety;
- /**//// <summary>
- /// 可以进行判断的类型
- /// </summary>
- public enum Operation
- {
- Byte, SByte, Int16, Int32, Int64, Single, Double, Boolean, Char, Decimal, DateTime, Date, Time,
- EMail, URL, ChinaPhone, ChineseWord, ChinesePostalCode, Number, StringModel_01, StringModel_02, WideWord, NarrowWord, IPAddress,
- ChineseMobile, ChineseID
- };
- #region 用于判断字符串是否是对应类型(默认为包含匹配)
- /// <summary>
- /// 用于判断字符串是否是对应类型
- /// <code>
- /// MSCL.RegHelper rm = new MSCL.RegHelper();
- /// Response.Write(rm.IsAccordType("123", MSCL.RegHelper.Operation.ChineseWord));
- /// </code>
- /// </summary>
- /// <param name="strVerifyString">String,需要判断的字符串</param>
- /// <param name="op">Operation枚举,用于选择需要进行的操作</param>
- /// <returns></returns>
- public bool IsAccordType(string strVerifyString, Operation op)
- {
- return IsAccordType(strVerifyString, op, false);
- }
- #endregion
- #region 用于判断字符串是否是对应类型(或是否包含对应类型的字符)
- /**//// <summary>
- /// 用于判断字符串是否是对应类型
- /// </summary>
- /// <param name="strVerifyString">String,需要判断的字符串</param>
- /// <param name="op">Operation枚举,用于选择需要进行的操作</param>
- /// <param name="IsEntirety">Boolean,判断是完全匹配还是包含匹配模式(仅适用于非类型判断时)</param>
- /// <returns></returns>
- public bool IsAccordType(string strVerifyString, Operation op, bool IsEntirety)
- {
- _String = strVerifyString;
- _IsEntirety = IsEntirety;
- switch (op)
- {
- case Operation.Byte:
- {
- return IsByte();
- }
- case Operation.SByte:
- {
- return IsSByte();
- }
- case Operation.Int16:
- {
- return IsInt16();
- }
- case Operation.Int32:
- {
- return IsInt32();
- }
- case Operation.Int64:
- {
- return IsInt64();
- }
- case Operation.Single:
- {
- return IsSingle();
- }
- case Operation.Double:
- {
- return IsDouble();
- }
- case Operation.Boolean:
- {
- return IsBoolean();
- }
- case Operation.Char:
- {
- return IsChar();
- }
- case Operation.Decimal:
- {
- return IsDecimal();
- }
- case Operation.DateTime:
- {
- return IsDateTime();
- }
- case Operation.Date:
- {
- return IsDate();
- }
- case Operation.Time:
- {
- return IsTime();
- }
- case Operation.IPAddress:
- {
- return IsIPAddress();
- }
- case Operation.ChinaPhone:
- {
- return IsChinaPhone();
- }
- case Operation.ChinesePostalCode:
- {
- return IsChinesePostalCode();
- }
- case Operation.ChineseMobile:
- {
- return IsChineseMobile();
- }
- case Operation.EMail:
- {
- return IsEmail();
- }
- case Operation.URL:
- {
- return IsURL();
- }
- case Operation.ChineseWord:
- {
- return IsChineseWord();
- }
- case Operation.Number:
- {
- return IsNumber();
- }
- case Operation.StringModel_01:
- {
- return IsStringModel_01();
- }
- case Operation.StringModel_02:
- {
- return IsStringModel_02();
- }
- case Operation.WideWord:
- {
- return IsWideWord();
- }
- case Operation.NarrowWord:
- {
- return IsNarrowWord();
- }
- case Operation.ChineseID:
- {
- return IsChineseID();
- }
- default:
- {
- return false;
- }
- }
- }
- #endregion
- #region 具体验证方法
- #region 是否Byte类型(8 位的无符号整数): 0 和 255 之间的无符号整数
- /**//// <summary>
- /// 是否Byte类型(8 位的无符号整数): 0 和 255 之间的无符号整数
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsByte()
- {
- try
- {
- Byte.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- #region 是否SByte类型(8 位的有符号整数): -128 到 +127 之间的整数
- /**//// <summary>
- /// 是否SByte类型(8 位的有符号整数): -128 到 +127 之间的整数
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsSByte()
- {
- try
- {
- SByte.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- #region 是否Int16类型(16 位的有符号整数): -32768 到 +32767 之间的有符号整数
- /**//// <summary>
- /// 是否Int16类型(16 位的有符号整数): -32768 到 +32767 之间的有符号整数
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsInt16()
- {
- try
- {
- Int16.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- #region 是否Int32类型(32 位的有符号整数):-2,147,483,648 到 +2,147,483,647 之间的有符号整数
- /**//// <summary>
- /// 是否Int32类型(32 位的有符号整数):-2,147,483,648 到 +2,147,483,647 之间的有符号整数
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsInt32()
- {
- try
- {
- Int32.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- #region 是否Int64类型(64 位的有符号整数): -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之间的整数
- /**//// <summary>
- /// 是否Int64类型(64 位的有符号整数): -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之间的整数
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsInt64()
- {
- try
- {
- Int64.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- #region 是否Single类型(单精度(32 位)浮点数字): -3.402823e38 和 +3.402823e38 之间的单精度 32 位数字
- /**//// <summary>
- /// 是否Single类型(单精度(32 位)浮点数字): -3.402823e38 和 +3.402823e38 之间的单精度 32 位数字
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsSingle()
- {
- try
- {
- Single.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- #region 是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字
- /**//// <summary>
- /// 是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsDouble()
- {
- try
- {
- Double.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- #region 是否Boolean类型(布尔值):true 或 false
- /**//// <summary>
- /// 是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsBoolean()
- {
- try
- {
- Boolean.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- #region 是否Char类型(Unicode(16 位)字符):该 16 位数字的值范围为从十六进制值 0x0000 到 0xFFFF
- /**//// <summary>
- /// 是否Char类型(Unicode(16 位)字符):该 16 位数字的值范围为从十六进制值 0x0000 到 0xFFFF
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsChar()
- {
- try
- {
- Char.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- #region 是否Char类型(96 位十进制值):从正 79,228,162,514,264,337,593,543,950,335 到负 79,228,162,514,264,337,593,543,950,335 之间的十进制数
- /**//// <summary>
- /// 是否Char类型(96 位十进制值):从正 79,228,162,514,264,337,593,543,950,335 到负 79,228,162,514,264,337,593,543,950,335 之间的十进制数
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsDecimal()
- {
- try
- {
- Decimal.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- #region 是否DateTime类型(表示时间上的一刻): 范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间
- /**//// <summary>
- /// 是否DateTime类型(表示时间上的一刻): 范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsDateTime()
- {
- try
- {
- DateTime.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- #region 是否Date类型(表示时间的日期部分): 范围在公元(基督纪元)0001 年 1 月 1 日 到公元 (C.E.) 9999 年 12 月 31 日之间的日期
- /**//// <summary>
- /// 是否Date类型(表示时间的日期部分): 范围在公元(基督纪元)0001 年 1 月 1 日 到公元 (C.E.) 9999 年 12 月 31 日之间的日期
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsDate()
- {
- DateTime Value;
- try
- {
- Value = DateTime.Parse(_String);
- }
- catch
- {
- return false;
- }
- if (Value.Date.ToString() == _String)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- #endregion
- #region 是否Time类型(表示时间部分HHMMSS): 范围在夜 12:00:00 到晚上 11:59:59 之间的时间
- /**//// <summary>
- /// 是否Time类型(表示时间部分HHMMSS): 范围在夜 12:00:00 到晚上 11:59:59 之间的时间
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsTime()
- {
- DateTime Value;
- try
- {
- Value = DateTime.Parse(_String);
- }
- catch
- {
- return false;
- }
- if (Value.Year == && Value.Month == && Value.Day == )
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- #endregion
- #region 是否IPAddress类型(IPv4 的情况下使用以点分隔的四部分表示法格式表示,IPv6 的情况下使用冒号与十六进制格式表示)
- /**//// <summary>
- /// 是否IPAddress类型(IPv4 的情况下使用以点分隔的四部分表示法格式表示,IPv6 的情况下使用冒号与十六进制格式表示)
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsIPAddress()
- {
- try
- {
- System.Net.IPAddress.Parse(_String);
- }
- catch
- {
- return false;
- }
- return true;
- }
- #endregion
- #region 是否中国电话号码类型(XXX/XXXX-XXXXXXX/XXXXXXXX (\d{3,4})-?\d{7,8}):判断是否是(区号:3或4位)-(电话号码:7或8位)
- /**//// <summary>
- /// 是否中国电话号码类型(XXX/XXXX-XXXXXXX/XXXXXXXX (\d{3,4})-?\d{7,8}):判断是否是(区号:3或4位)-(电话号码:7或8位)
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsChinaPhone()
- {
- ArrayList aryResult = new ArrayList();
- return CommRegularMatch(_String, @"(\d{3,4})-?\d{7,8}", RegexOptions.None, ref aryResult, _IsEntirety);
- }
- #endregion
- #region 是否中国邮政编码(6位数字 \d{6})
- /**//// <summary>
- /// 是否中国邮政编码(6位数字 \d{6})
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsChinesePostalCode()
- {
- ArrayList aryResult = new ArrayList();
- return CommRegularMatch(_String, @"\d{6}", RegexOptions.None, ref aryResult, _IsEntirety);
- }
- #endregion
- #region 是否中国移动电话号码(13开头的总11位数字 13\d{9})
- /**//// <summary>
- /// 是否中国移动电话号码(13开头的总11位数字 13\d{9})
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsChineseMobile()
- {
- ArrayList aryResult = new ArrayList();
- return CommRegularMatch(_String, @"13\d{9}", RegexOptions.None, ref aryResult, _IsEntirety);
- }
- #endregion
- #region 是否EMail类型(XXX@XXX.XXX \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)
- /**//// <summary>
- /// 是否EMail类型(XXX@XXX.XXX \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsEmail()
- {
- ArrayList aryResult = new ArrayList();
- return CommRegularMatch(_String, @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", RegexOptions.None, ref aryResult, _IsEntirety);
- }
- #endregion
- #region 是否Internet URL地址类型(http://)
- /**//// <summary>
- /// 是否Internet URL地址类型(http://)
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsURL()
- {
- ArrayList aryResult = new ArrayList();
- return CommRegularMatch(_String, @"http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?", RegexOptions.None, ref aryResult, _IsEntirety);
- }
- #endregion
- #region 是否中文字符([\u4e00-\u9fa5])
- /**//// <summary>
- /// 是否中文字符([\u4e00-\u9fa5])
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsChineseWord()
- {
- ArrayList aryResult = new ArrayList();
- return CommRegularMatch(_String, @"[\u4e00-\u9fa5]", RegexOptions.None, ref aryResult, _IsEntirety);
- }
- #endregion
- #region 是否是数字(0到9的数字[\d]+):不包括符号"."和"-"
- /**//// <summary>
- /// 是否是数字(0到9的数字[\d]+):不包括符号"."和"-"
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsNumber()
- {
- ArrayList aryResult = new ArrayList();
- return CommRegularMatch(_String, @"[\d]+", RegexOptions.None, ref aryResult, _IsEntirety);
- }
- #endregion
- #region 是否只包含数字,英文和下划线([\w]+)
- /**//// <summary>
- /// 是否只包含数字,英文和下划线([\w]+)
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsStringModel_01()
- {
- ArrayList aryResult = new ArrayList();
- return CommRegularMatch(_String, @"[\w]+", RegexOptions.None, ref aryResult, _IsEntirety);
- }
- #endregion
- #region 是否大写首字母的英文字母([A-Z][a-z]+)
- /**//// <summary>
- /// 是否大写首字母的英文字母([A-Z][a-z]+)
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsStringModel_02()
- {
- ArrayList aryResult = new ArrayList();
- return CommRegularMatch(_String, @"[A-Z][a-z]+", RegexOptions.None, ref aryResult, _IsEntirety);
- }
- #endregion
- #region 是否全角字符([^\x00-\xff]):包括汉字在内
- /**//// <summary>
- /// 是否全角字符([^\x00-\xff]):包括汉字在内
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsWideWord()
- {
- ArrayList aryResult = new ArrayList();
- return CommRegularMatch(_String, @"[^\x00-\xff]", RegexOptions.None, ref aryResult, _IsEntirety);
- }
- #endregion
- #region 是否半角字符([\x00-\xff])
- /**//// <summary>
- /// 是否半角字符([^\x00-\xff]):包括汉字在内
- /// </summary>
- /// <returns>Boolean</returns>
- protected bool IsNarrowWord()
- {
- ArrayList aryResult = new ArrayList();
- return CommRegularMatch(_String, @"[\x00-\xff]", RegexOptions.None, ref aryResult, _IsEntirety);
- }
- #endregion
- #region 是否合法的中国身份证号码
- protected bool IsChineseID()
- {
- if (_String.Length == )
- {
- _String = CidUpdate(_String);
- }
- if (_String.Length == )
- {
- string strResult = CheckCidInfo(_String);
- if (strResult == "非法地区" || strResult == "非法生日" || strResult == "非法证号")
- {
- return false;
- }
- else
- {
- return true;
- }
- }
- else
- {
- return false;
- }
- }
- #endregion
- #endregion
- #region 通用正则表达式判断函数
- /**//// <summary>
- /// 通用正则表达式判断函数
- /// </summary>
- /// <param name="strVerifyString">String,用于匹配的字符串</param>
- /// <param name="strRegular">String,正则表达式</param>
- /// <param name="regOption">RegexOptions,配置正则表达式的选项</param>
- /// <param name="aryResult">ArrayList,分解的字符串内容</param>
- /// <param name="IsEntirety">Boolean,是否需要完全匹配</param>
- /// <returns></returns>
- public bool CommRegularMatch(string strVerifyString, string strRegular, System.Text.RegularExpressions.RegexOptions regOption, ref System.Collections.ArrayList aryResult, bool IsEntirety)
- {
- System.Text.RegularExpressions.Regex r;
- System.Text.RegularExpressions.Match m;
- #region 如果需要完全匹配的处理
- if (IsEntirety)
- {
- strRegular = strRegular.Insert(, @"\A");
- strRegular = strRegular.Insert(strRegular.Length, @"\z");
- }
- #endregion
- try
- {
- r = new System.Text.RegularExpressions.Regex(strRegular, regOption);
- }
- catch (System.Exception e)
- {
- throw (e);
- }
- for (m = r.Match(strVerifyString); m.Success; m = m.NextMatch())
- {
- aryResult.Add(m);
- }
- if (aryResult.Count == )
- {
- return false;
- }
- else
- {
- return true;
- }
- }
- #endregion
- #region 中国身份证号码验证
- private string CheckCidInfo(string cid)
- {
- string[] aCity = new string[] { null, null, null, null, null, null, null, null, null, null, null, "北京", "天津", "河北", "山西", "内蒙古", null, null, null, null, null, "辽宁", "吉林", "黑龙江", null, null, null, null, null, null, null, "上海", "江苏", "浙江", "安微", "福建", "江西", "山东", null, null, null, "河南", "湖北", "湖南", "广东", "广西", "海南", null, null, null, "重庆", "四川", "贵州", "云南", "西藏", null, null, null, null, null, null, "陕西", "甘肃", "青海", "宁夏", "新疆", null, null, null, null, null, "台湾", null, null, null, null, null, null, null, null, null, "香港", "澳门", null, null, null, null, null, null, null, null, "国外" };
- double iSum = ;
- string info = string.Empty;
- System.Text.RegularExpressions.Regex rg = new System.Text.RegularExpressions.Regex(@"^\d{17}(\d|x)$");
- System.Text.RegularExpressions.Match mc = rg.Match(cid);
- if (!mc.Success)
- {
- return string.Empty;
- }
- cid = cid.ToLower();
- cid = cid.Replace("x", "a");
- if (aCity[int.Parse(cid.Substring(, ))] == null)
- {
- return "非法地区";
- }
- try
- {
- DateTime.Parse(cid.Substring(, ) + " - " + cid.Substring(, ) + " - " + cid.Substring(, ));
- }
- catch
- {
- return "非法生日";
- }
- for (int i = ; i >= ; i--)
- {
- iSum += (System.Math.Pow(, i) % ) * int.Parse(cid[ - i].ToString(), System.Globalization.NumberStyles.HexNumber);
- }
- if (iSum % != )
- {
- return ("非法证号");
- }
- else
- {
- return (aCity[int.Parse(cid.Substring(, ))] + "," + cid.Substring(, ) + "-" + cid.Substring(, ) + "-" + cid.Substring(, ) + "," + (int.Parse(cid.Substring(, )) % == ? "男" : "女"));
- }
- }
- #endregion
- #region 身份证号码15升级为18位
- private string CidUpdate(string ShortCid)
- {
- char[] strJiaoYan = { '', '', 'X', '', '', '', '', '', '', '', '' };
- int[] intQuan = { , , , , , , , , , , , , , , , , , };
- string strTemp;
- int intTemp = ;
- strTemp = ShortCid.Substring(, ) + "" + ShortCid.Substring();
- for (int i = ; i <= strTemp.Length - ; i++)
- {
- intTemp += int.Parse(strTemp.Substring(i, )) * intQuan[i];
- }
- intTemp = intTemp % ;
- return strTemp + strJiaoYan[intTemp];
- }
- #endregion
- }
- }
Asp.net(C#)常用正则表达式封装的更多相关文章
- 【转】【Asp.Net MVC】asp.net mvc Model验证总结及常用正则表达式
本文属转载,来源: http://www.byywee.com/page/M0/S868/868615.html 关于Model验证官方资料: http://msdn.microsoft.com/zh ...
- 【Asp.Net MVC】asp.net mvc Model验证总结及常用正则表达式
转自:http://www.cnblogs.com/easy5weikai/p/3843131.html 关于Model验证官方资料: http://msdn.microsoft.com/zh-cn/ ...
- asp.net mvc Model验证总结及常用正则表达式【转载】
关于Model验证官方资料: http://msdn.microsoft.com/zh-cn/library/system.componentmodel.dataannotations.aspx AS ...
- mvc Model验证总结及常用正则表达式
本文属转载,来源: http://www.byywee.com/page/M0/S868/868615.html 关于Model验证官方资料: http://msdn.microsoft.com/zh ...
- Javascript正则构造函数与正则表达字面量&&常用正则表达式
本文不讨论正则表达式入门,即如何使用正则匹配.讨论的是两种创建正则表达式的优劣和一些细节,最后给出一些常用正则匹配表达式. Javascript中的正则表达式也是对象,我们可以使用两种方法创建正则表达 ...
- asp.net mvc 自定义pager封装与优化
asp.net mvc 自定义pager封装与优化 Intro 之前做了一个通用的分页组件,但是有些不足,从翻页事件和分页样式都融合在后台代码中,到翻页事件可以自定义,再到翻页和样式都和代码分离, 自 ...
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】
[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...
- 常用正则表达式-copy
匹配中文:[\u4e00-\u9fa5] 英文字母:[a-zA-Z] 数字:[0-9] 匹配中文,英文字母和数字及_: ^[\u4e00-\u9fa5_a-zA-Z0-9]+$ 同时判断输入长度:[\ ...
- ASP.NET中常用的几个李天平开源公共类LTP.Common,Maticsoft.DBUtility,LtpPageControl
ASP.NET中常用的几个开源公共类: LTP.Common.dll: 通用函数类库 源码下载Maticsoft.DBUtility.dll 数据访问类库组件 源码下载LtpPageC ...
随机推荐
- NetCore的控制台应用中搭建WebServer的方法
一.新建NetCore控制台项目,并引入下列Nuget包: Microsoft.AspNetCore.StaticFiles.Microsoft.AspNetCore.Http.Microsoft.A ...
- Pause Web Sessions
To pause specific sessions, add rules using FiddlerScript to the OnBeforeRequest function (except wh ...
- CyclicBarrier的用法
CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point).在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待, ...
- oracle下的数据库实例、表空间、用户及其表的区分
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Ora ...
- 【Zookeeper】源码分析之持久化(一)之FileTxnLog
一.前言 前一篇已经分析了序列化,这篇接着分析Zookeeper的持久化过程源码,持久化对于数据的存储至关重要,下面进行详细分析. 二.持久化总体框架 持久化的类主要在包org.apache.zook ...
- snabbdom vdom 框架
1.snabbdom github地址:https://github.com/snabbdom/snabbdom 2.核心方法 var vnode = h('div#container.two.cla ...
- android JNI调用(Android Studio 3.0.1)(转)
最近回头复习了一下android 的jni调用,却发现按以前的方法调用失败,一怒之下就重新摸索,碰了几次壁,发现网上好多教程都不能成功调用,于是记录一下现在AS版本成功好用的调用方法. 这里设定你的n ...
- 利用Linux文件系统内存cache来提高性能
https://www.linuxjournal.com/article/6345 利用Linux文件系统内存cache来提高性能 本地磁盘文件->socket发送,4步骤数据流向: hard ...
- jqPlot图表插件学习之折线图-散点图-series属性
一.准备工作 首先我们需要到官网下载所需的文件: 官网下载(笔者选择的是jquery.jqplot.1.0.8r1250.zip这个版本) 然后读者需要根据自己的情况新建一个项目并且按照如下的方式加载 ...
- 安装win和xp双系统 若干问题
装了winxp和linux双系统,后先在winxp下手动格式化了linux系统,后启动时提示grub错误,重新分区后系统也 2010-09-17 21:07 [清风剑] | 分类:Linux | 浏览 ...