字符串帮助类
来源:互联网 发布:excel办公软件使用 编辑:程序博客网 时间:2024/06/02 03:31
#region 格式化
/// <summary>
/// 格式化
/// </summary>
/// <param name="sInput">本身字符串</param>
/// <param name="args"></param>
/// <returns></returns>
public
static
string format(this string sInput, params object[] args)
{
return
String.Format(sInput, args);
}
#endregion
#region 倒转字符串
/// <summary>
/// 倒转字符串
/// </summary>
public
static
string Reverse(this string sInput)
{
char[] chars = sInput.ToCharArray();
Array.Reverse(chars);
return
new
String(chars);
}
#endregion
#region 判断是否为email
/// <summary>
/// 判断是否为email
/// </summary>
/// <param name="email"></param>
/// <returns></returns>
public
static
bool IsEmail(string email)
{
if
(string.IsNullOrWhiteSpace(email))
{
return
false;
}
string pattern =
"\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"
;
return
Regex.IsMatch(email, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
}
#endregion
#region 判断是否为手机号
/// <summary>
/// 判断是否为手机号
/// </summary>
/// <param name="mobile"></param>
/// <returns></returns>
public
static
bool IsMobile(string mobile)
{
if
(string.IsNullOrWhiteSpace(mobile))
{
return
false;
}
string pattern =
"^(13|15|18)[0-9]{9}$"
;
return
Regex.IsMatch(mobile, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
}
#endregion
#region 判断是否为电话
/// <summary>
/// 判断是否为电话
/// </summary>
/// <param name="phone">0755-45784678-85</param>
/// <returns></returns>
public
static
bool IsPhone(string phone)
{
if
(string.IsNullOrWhiteSpace(phone))
{
return
false;
}
string pattern =
"^(([0-9]{3,4})|[0-9]{3,4}-)?[0-9]{7,8}(-[0-9]{2,4})?$"
;
return
Regex.IsMatch(phone, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
}
#endregion
#region 判断是否为邮编
/// <summary>
/// 判断是否为邮编
/// </summary>
/// <param name="phone">415118</param>
/// <returns></returns>
public
static
bool IsPostCode(string postcode)
{
if
(string.IsNullOrWhiteSpace(postcode))
{
return
false;
}
string pattern =
"^[0-9]{6}$"
;
return
Regex.IsMatch(postcode, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
}
#endregion
#region 是否有效的姓名
/// <summary>
/// 是否有效的姓名
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public
static
bool IsValidName(string name)
{
if
(string.IsNullOrWhiteSpace(name))
{
return
false;
}
string pattern =
"^(([\u4e00-\u9fa5]{2,5})|([a-zA-Z]{1,10}[a-zA-Z. ]{1,20}[a-zA-Z]{1,10}))$"
;
return
Regex.IsMatch(name, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
}
#endregion
#region 是否有效的中文名
/// <summary>
/// 是否有效的中文名
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public
static
bool IsValidChineseName(string name)
{
if
(string.IsNullOrWhiteSpace(name))
{
return
false;
}
string pattern =
"^[\u4e00-\u9fa5]{2,5}$"
;
return
Regex.IsMatch(name, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
}
#endregion
#region 是否为正确的QQ号
/// <summary>
/// 是否为正确的QQ号
/// </summary>
/// <param name="qq"></param>
/// <returns></returns>
public
static
bool IsQQ(string qq)
{
if
(string.IsNullOrWhiteSpace(qq))
{
return
false;
}
string pattern =
"^[1-9][0-9]{4,}$"
;
return
Regex.IsMatch(qq, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
}
#endregion
#region 是否数字
/// <summary>
/// 是否数字
/// </summary>
/// <param name="sNumeric"></param>
/// <returns></returns>
public
static
bool IsNumeric(string sNumeric)
{
return
(
new
Regex(
"^[\\+\\-]?[0-9]*\\.?[0-9]+$"
)).IsMatch(sNumeric);
}
#endregion
#region 是否整数
/// <summary>
/// 是否整数
/// </summary>
/// <param name="sNumeric"></param>
/// <returns></returns>
public
static
bool IsInt(string intString)
{
return
(
new
Regex(
"^[\\+\\-]?[0-9]+$"
)).IsMatch(intString);
}
#endregion
#region 是否为正整数
/// <summary>
/// 是否为正整数
/// </summary>
/// <param name="sNumeric"></param>
/// <returns></returns>
public
static
bool IsPosInt(string intString)
{
return
(
new
Regex(
"^[0-9]*[1-9][0-9]*$"
)).IsMatch(intString);
}
#endregion
#region 自定义截取字符串
/// <summary>
/// 自定义截取字符串
/// </summary>
/// <param name="str">待截取的字符串</param>
/// <param name="len">长度</param>
/// <param name="hasDots">是否带"..."</param>
/// <returns></returns>
public
static
string SubString(string str, int len, bool hasDots)
{
if
(string.IsNullOrWhiteSpace(str))
return
string.
Empty
;
string dots = string.
Empty
;
if
(len >= str.Length)
return
str;
if
(hasDots)
dots =
"..."
;
return
str.Substring(0, len) + dots;
}
#endregion
#region 取得客户端IP地址
//获取客户端IP
public
static
string GetClientIP()
{
string result = HttpContext.Current.Request.ServerVariables[
"HTTP_X_FORWARDED_FOR"
];
if
(null == result || result == String.
Empty
)
{
result = HttpContext.Current.Request.ServerVariables[
"REMOTE_ADDR"
];
}
if
(null == result || result == String.
Empty
)
{
result = HttpContext.Current.Request.UserHostAddress;
}
if
(null == result || result == String.
Empty
)
{
return
"0.0.0.0"
;
}
if
(result.Equals(
"::1"
))
{
return
"127.0.0.1"
;
}
return
result;
}
/// <summary>
/// 将最后一位数字换为*
/// </summary>
/// <param name="ip">输入的ip</param>
/// <returns></returns>
public
static
string FilterLastNum(string ip)
{
string result = string.
Empty
;
string[] s = ip.Split(
'.'
);
for
(int i = 0; i < s.Length - 1; i++)
{
result += s[i] +
"."
;
}
result +=
"*"
;
return
result;
}
#endregion
#region 将ID字符串转化为int数组
/// <summary>
/// 将ID字符串转化为int数组,默认使用空格和逗号分割
/// </summary>
/// <param name="idString"></param>
/// <param name="splitChars"> </param>
/// <returns></returns>
public
static
List<int> ConvertFromIdString(string idString,params char[] splitChars)
{
if
(!string.IsNullOrWhiteSpace(idString))
{
List<string> strings;
if
(splitChars == null||splitChars.Length == 0)
{
strings = idString.Split(
new
[]{
' '
,
','
}, StringSplitOptions.RemoveEmptyEntries).ToList();
}
else
{
strings = idString.Split(splitChars, StringSplitOptions.RemoveEmptyEntries).ToList();
}
return
strings.ConvertAll(DataTypeHelper.GetInt32);
}
return
new
List<int>();
}
#endregion
#region 获取合法的主键字符串
/// <summary>
/// 获取合法的主键字符串,比如 1,3,6,7
/// </summary>
/// <param name="strKeys"></param>
/// <returns></returns>
public
static
String GetLegalKeyStr(String strKeys)
{
if
(String.IsNullOrWhiteSpace(strKeys))
{
return
String.
Empty
;
}
List<String> list =
new
List<String>();
foreach
(String key in strKeys.Split(
','
,
' '
))
{
if
(Regex.IsMatch(key, @
"^[0-9]+$"
, RegexOptions.Compiled))
{
list.Add(key);
}
}
list.Sort();
return
String.Join(
","
, list.Distinct().ToArray());
}
#endregion
#region 获取合法的字典字符串
/// <summary>
/// 获取合法的字典字符串,比如 a,b,d,e
/// </summary>
/// <param name="strKeys"></param>
/// <returns></returns>
public
static
string GetLegalDictKey(string strKeys)
{
if
(string.IsNullOrWhiteSpace(strKeys))
{
return
string.
Empty
;
}
strKeys = strKeys.ToLower();
strKeys = Regex.Replace(strKeys,
"[^,a-z0-9_]"
, string.
Empty
, RegexOptions.Compiled);
strKeys = Regex.Replace(strKeys,
"[,]{2,}"
,
","
, RegexOptions.Compiled);
strKeys = strKeys.Trim(
','
);
return
strKeys;
}
#endregion
#region 获取合法的主键字符串
/// <summary>
/// 获取前后有,的主键字符串,比如 ,1,3,6,7,
/// </summary>
/// <param name="strKeys"></param>
/// <returns></returns>
public
static
string GetWrapedKeyStr(string strKeys)
{
return
strKeys = string.Format(
",{0},"
, GetLegalKeyStr(strKeys));
}
#endregion
#region 获取合法的字典字符串
/// <summary>
/// 获取有'的字典字符串,比如 'a','b','c','d'
/// </summary>
/// <param name="strKeys"></param>
/// <returns></returns>
public
static
string GetWrapedDictKey(string strKeys)
{
strKeys = GetLegalDictKey(strKeys);
if
(string.IsNullOrEmpty(strKeys))
{
return
string.
Empty
;
}
strKeys = strKeys.Replace(
","
,
"','"
);
return
strKeys = string.Format(
"'{0}'"
, strKeys);
}
#endregion
#region 转换文件大小
/// <summary>
/// 转换文件大小
/// </summary>
/// <param name="fileSize"></param>
/// <returns></returns>
public
static
String FormatFileSize(long
fileSize
)
{
String fileSizeString =
""
;
if
(
fileSize
< 1024)
{
fileSizeString =
fileSize
+
" B"
;
}
else
if
(
fileSize
< 1024 * 1024)
{
fileSizeString = String.Format(
"{0:F2}"
, (double)
fileSize
/ 1024) +
" K"
;
}
else
if
(
fileSize
< 1024 * 1024 * 1024)
{
fileSizeString = String.Format(
"{0:F2}"
, (double)
fileSize
/ (1024 * 1024)) +
" M"
;
}
else
{
fileSizeString = String.Format(
"{0:F2}"
, (double)
fileSize
/ (1024 * 1024 * 1024)) +
" G"
;
}
return
fileSizeString;
}
#endregion
#region 通过正则匹配获取值
/// <summary>
/// 通过正则匹配获取值
/// </summary>
/// <param name="input"></param>
/// <param name="pattern"></param>
/// <returns></returns>
public
static
GroupCollection GetPatternValue(string input, string pattern)
{
if
(string.IsNullOrWhiteSpace(input))
{
return
null;
}
Match match = Regex.Match(input, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
if
(match.Success && match.Groups.
Count
> 0)
{
return
match.Groups;
}
return
null;
}
/// <summary>
/// 通过正则匹配获取值
/// </summary>
/// <param name="input"></param>
/// <param name="pattern"></param>
/// <returns></returns>
public
static
MatchCollection GetPatternValues(string input, string pattern)
{
if
(string.IsNullOrWhiteSpace(input))
{
return
null;
}
MatchCollection match = Regex.Matches(input, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
return
match;
}
#endregion
#region 合并路径
/// <summary>
/// 合并路径
/// </summary>
/// <param name="separator"></param>
/// <param name="path1"></param>
/// <param name="path2"></param>
/// <returns></returns>
public
static
string CombinPath(char separator, string path1, string path2)
{
if
(string.IsNullOrWhiteSpace(path1) || string.IsNullOrWhiteSpace(path2))
{
return
path1 ?? path2;
}
bool b1 = path1[path1.Length - 1] == separator;
bool b2 = path2[0] == separator;
if
(b1 && b2)
{
return
path1 + path2.TrimStart(separator);
}
if
(b1 || b2)
{
return
path1 + path2;
}
return
string.Concat(path1, separator, path2);
}
/// <summary>
/// 合并路径
/// </summary>
/// <param name="separator"></param>
/// <param name="paths"></param>
/// <returns></returns>
public
static
string CombinPath(char separator, params string[] paths)
{
if
(paths == null || paths.Length == 0)
{
return
string.
Empty
;
}
else
if
(paths.Length == 1)
{
return
paths[0];
}
System.Text.StringBuilder sb =
new
System.Text.StringBuilder(paths[0]);
for
(int i = 1; i < paths.Length; ++i)
{
string path = paths[i];
if
(string.IsNullOrEmpty(path))
{
continue
;
}
bool b1 = sb[sb.Length - 1] == separator;
bool b2 = path[0] == separator;
if
(b1 && b2)
{
sb.Append(path.TrimStart(separator));
}
else
if
(b1 || b2)
{
sb.Append(path);
}
else
{
sb.Append(separator);
sb.Append(path);
}
}
return
sb.ToString();
}
#endregion
#region 计算页数
/// <summary>
/// 计算页数
/// </summary>
/// <param name="totalRecordCount"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
public
static
int GetPageCount(int totalRecordCount, int pageSize)
{
return
Convert.ToInt32(Math.Ceiling((double)totalRecordCount / pageSize));
}
#endregion
#region 版本比较
/// <summary>
/// 版本比较
/// </summary>
/// <param name="version1"></param>
/// <param name="version2"></param>
/// <returns></returns>
public
static
int CompareVersion(string version1, string version2)
{
version1 = Regex.Replace(version1,
"[^0-9.]"
,
""
, RegexOptions.Compiled);
version2 = Regex.Replace(version2,
"[^0-9.]"
,
""
, RegexOptions.Compiled);
if
(string.IsNullOrEmpty(version1) || string.IsNullOrEmpty(version2))
{
return
string.Compare(version1, version2);
}
Version v1 =
new
Version(version1);
Version v2 =
new
Version(version2);
return
v1.CompareTo(v2);
}
#endregion
#region 将字符串形式的IP转换位long
///<summary>
/// 将字符串形式的IP转换位long
///</summary>
///<param name="ipAddress"></param>
///<returns></returns>
public
static
long IpToLong(string ipAddress)
{
if
(string.IsNullOrWhiteSpace(ipAddress))
return
0;
byte[] ip_bytes =
new
byte[8];
string[] strArr = ipAddress.Split(
new
char[] {
'.'
});
if
(strArr.Length != 4)
return
0;
for
(int i = 0; i < 4; i++)
{
byte b = 0;
if
(byte.TryParse(strArr[3 - i], out b))
{
ip_bytes[i] = b;
}
else
{
return
0;
}
}
return
BitConverter.ToInt64(ip_bytes, 0);
}
#endregion
#region 混淆密码(如将123456变为1****6)
/// <summary>
/// 混淆密码(如将123456变为1****6)
/// </summary>
/// <param name="passwd"></param>
/// <returns></returns>
public
static
string MixPasswd(string passwd)
{
if
(string.IsNullOrEmpty(passwd))
return
string.
Empty
;
char[] newPasswd =
new
char[passwd.Length];
int mixed = 0;
int i = 0;
Random rand =
new
Random();
foreach
(char ch in passwd)
{
if
(rand.Next(100) > 55)
{
++mixed;
newPasswd[i++] =
'*'
;
}
else
{
newPasswd[i++] = ch;
}
}
i = 0;
while
(mixed < passwd.Length / 2)
// 至少一半替换为*
{
if
(newPasswd[i] !=
'*'
)
{
++mixed;
newPasswd[i++] =
'*'
;
}
}
return
new
string(newPasswd);
}
#endregion
#region 日期
/// <summary>
/// 判断今天是第几周
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public
static
int WeekNumber(DateTime
date
)
{
string firstDateText =
date
.Year +
"-1-1"
;
DateTime firstDay = Convert.ToDateTime(firstDateText);
int theday;
switch
(firstDay.DayOfWeek)
{
case
DayOfWeek.Monday:
theday = -1;
break
;
case
DayOfWeek.Tuesday:
theday = 0;
break
;
case
DayOfWeek.Wednesday:
theday = 1;
break
;
case
DayOfWeek.Thursday:
theday = 2;
break
;
case
DayOfWeek.Friday:
theday = 3;
break
;
case
DayOfWeek.Saturday:
theday = 4;
break
;
default
:
theday = 5;
break
;
}
int weekNum = (
date
.DayOfYear + theday) / 7 + 1;
return
weekNum;
}
/// <summary>
/// 年内某周的日期范围
/// </summary>
/// <param name="yearNum"></param>
/// <param name="weekNum"></param>
/// <returns></returns>
public
static
String WeekRange(int yearNum, int weekNum)
{
DateTime firstOfYear =
new
DateTime(yearNum, 1, 1);
System.DayOfWeek dayofweek = firstOfYear.DayOfWeek;
DateTime stand = firstOfYear.AddDays(weekNum * 7);
DateTime start =
default
(DateTime);
DateTime
end
=
default
(DateTime);
switch
(dayofweek)
{
case
DayOfWeek.Monday:
start = stand.AddDays(0);
end
= stand.AddDays(6);
break
;
case
DayOfWeek.Tuesday:
start = stand.AddDays(-1);
end
= stand.AddDays(5);
break
;
case
DayOfWeek.Wednesday:
start = stand.AddDays(-2);
end
= stand.AddDays(4);
break
;
case
DayOfWeek.Thursday:
start = stand.AddDays(-3);
end
= stand.AddDays(3);
break
;
case
DayOfWeek.Friday:
start = stand.AddDays(-4);
end
= stand.AddDays(2);
break
;
case
DayOfWeek.Saturday:
start = stand.AddDays(-5);
end
= stand.AddDays(1);
break
;
default
:
start = stand.AddDays(-6);
end
= stand.AddDays(0);
break
;
}
return
start.ToString(
"yyyy/MM/dd"
) +
" — "
+
end
.ToString(
"yyyy/MM/dd"
);
}
#endregion
0 0
- 字符串帮助类
- (转)字符串帮助类
- 字符串帮助类
- 帮助别人也是帮助自己,字符串
- Java常见帮助类(2)字符串处理类
- 2010.5.22 写一个通用的字符串帮助类
- 三层结构与数据库的连接字符串帮助类
- 基于KMP算法的C++字符串帮助类
- 将Collection转转换成带分隔符的字符串的帮助类
- C++ Raw字符串帮助输出任何内容
- Excel 帮助类
- JSONHelper JSON帮助类
- ChartsUtil jfreeChart 帮助类
- .Net文件夹帮助类
- socket 通讯 帮助类
- ENUM帮助类
- PHPExcel 类库帮助
- Dictionary帮助类
- rman备份,恢复
- JSP中include指令和动作的区别
- Android工程师面试题大全
- C++静态库与动态库
- adb client, adb server, adbd原理浅析
- 字符串帮助类
- opencv 3.0 DPM Cascade 检测 (附带TBB和openMP加速)
- first ant program
- 简述UIDatePicker的用法
- Skia往SkBitmap上绘图时画不出来的问题
- 更新到Retrofit2的一些技巧
- 常用代码备份--资源切换
- iOS开发之与后台服务器的交互
- zoj 1002 Fire Net