string類型常用方法擴展
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
public static class StringExtension
{
// 移除前綴字符串
public static string RemovePrefixString(this string self, string str)
{
string strRegex = @"^(" + str + ")";
return Regex.Replace(self, strRegex, "");
}
// 移除後綴字符串
public static string RemoveSuffixString(this string self, string str)
{
string strRegex = @"(" + str + ")" + "$";
return Regex.Replace(self, strRegex, "");
}
// 是否爲Email
public static bool IsEmail(this string self)
{
return self.RegexMatch(@"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");
}
// 是否爲域名
public static bool IsDomain(this string self)
{
return self.RegexMatch(@"[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?");
}
// 是否爲IP地址
public static bool IsIP(this string self)
{
return self.RegexMatch(@"((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))");
}
// 是否爲手機號碼
public static bool IsMobilePhone(this string self)
{
return self.RegexMatch(@"^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$");
}
// 匹配正則表達式
public static bool RegexMatch(this string slef, string pattern)
{
Regex reg = new Regex(pattern);
return reg.Match(slef).Success;
}
// 轉換爲MD5, 加密結果"x2"結果爲32位,"x3"結果爲48位,"x4"結果爲64位
public static string ConvertToMD5(this string self,string flag = "x2")
{
byte[] sor = Encoding.UTF8.GetBytes(self);
MD5 md5 = MD5.Create();
byte[] result = md5.ComputeHash(sor);
StringBuilder strbul = new StringBuilder(40);
for (int i = 0; i < result.Length; i++)
{
strbul.Append(result[i].ToString(flag));
}
return strbul.ToString();
}
// 轉換爲32位MD5
public static string ConvertToMD5_32(this string self)
{
return ConvertToMD5(self, "x2");
}
// 轉換爲48位MD5
public static string ConvertToMD5_48(this string self)
{
return ConvertToMD5(self, "x3");
}
// 轉換爲64位MD5
public static string ConvertToMD5_64(this string self)
{
return ConvertToMD5(self, "x4");
}
}