StringExtensions
StringExtensions 扩展类文档
Section titled “StringExtensions 扩展类文档”StringExtensions 是一个静态扩展类,为 string 类型提供了丰富的扩展方法,包括空值判断、类型验证、类型转换、编码解码、字符串操作等功能,旨在简化字符串处理,提高代码的安全性和可读性,特别是用于处理可能为空的字符串类型的日常操作场景。
主要功能模块
Section titled “主要功能模块”1. 空值判断方法
Section titled “1. 空值判断方法”提供字符串状态判断和空值验证的便捷方法。
主要方法:
IsNullOrEmpty()- 判断字符串是否为 null 或空字符串IsNullOrWhiteSpace()- 判断字符串是否为 null 或仅包含空白字符IsNotNullOrEmpty()- 判断字符串是否不为空IsNotNullOrWhiteSpace()- 判断字符串是否不为空白IsNull(string nullStrings, bool isTrim)- 判断字符串是否为空(支持自定义空值判断)
2. 类型判断方法
Section titled “2. 类型判断方法”提供字符串类型验证的便捷方法。
主要方法:
IsNumeric()- 判断字符串是否为数字IsInt()- 判断字符串是否为整数IsLong()- 判断字符串是否为长整数IsFloat()- 判断字符串是否为浮点数IsDouble()- 判断字符串是否为双精度浮点数IsDecimal()- 判断字符串是否为十进制数IsGuid()- 判断字符串是否为 GuidIsBool()- 判断字符串是否为布尔值IsDateTime()- 判断字符串是否为日期时间IsLetter()- 判断字符串是否仅包含字母IsLetterOrDigit()- 判断字符串是否仅包含字母或数字IsChinese()- 判断字符串是否为中文字符HasChinese()- 判断字符串中是否包含中文IsDigits()- 判断字符串是否为纯数字字符串IsHex()- 判断字符串是否为十六进制字符串
3. 正则表达式验证
Section titled “3. 正则表达式验证”提供基于正则表达式的字符串格式验证功能。
主要方法:
IsEmail()- 验证字符串是否为有效的电子邮件地址IsMobile()- 验证字符串是否为有效的手机号码(中国大陆)IsTel()- 验证字符串是否为有效的固定电话号码IsUrl()- 验证字符串是否为有效的 URLIsIdCard()- 验证字符串是否为有效的身份证号码(中国大陆)IsIpAddress()- 验证字符串是否为有效的 IP 地址IsIPv4()- 验证字符串是否为有效的 IPv4 地址IsIPv6()- 验证字符串是否为有效的 IPv6 地址IsZipCode()- 验证字符串是否为有效的邮政编码IsBankCard()- 验证字符串是否为有效的银行卡号IsJson()- 验证字符串是否为有效的 JSON 格式IsXml()- 验证字符串是否为有效的 XML 格式IsDate()- 验证字符串是否为有效的日期格式IsTime()- 验证字符串是否为有效的时间格式
4. 类型转换方法
Section titled “4. 类型转换方法”提供字符串到各种类型的转换功能。
主要方法:
ToInt(int defaultValue = 0)- 字符串转 int,失败返回默认值ToLong(long defaultValue = 0)- 字符串转 long,失败返回默认值ToFloat(float defaultValue = 0)- 字符串转 float,失败返回默认值ToDouble(double defaultValue = 0)- 字符串转 double,失败返回默认值ToDecimal(decimal defaultValue = 0)- 字符串转 decimal,失败返回默认值ToBool(bool defaultValue = false)- 字符串转 bool,失败返回默认值ToGuid(Guid? defaultValue = null)- 字符串转 Guid,失败返回默认值ToDateTime(DateTime? defaultValue = null)- 字符串转 DateTime,失败返回默认值
数值约束转换方法
Section titled “数值约束转换方法”ToDoubleRound(int decimals)- 字符串转 double 并保留指定小数位数(四舍五入)ToDoubleTruncate(int decimals)- 字符串转 double 并保留指定小数位数(截取)ToFloatRound(int decimals)- 字符串转 float 并保留指定小数位数(四舍五入)ToFloatTruncate(int decimals)- 字符串转 float 并保留指定小数位数(截取)KeepDecimal(int decimals)- 保留数值字符串的小数位数
5. 字符串操作方法
Section titled “5. 字符串操作方法”提供字符串处理和转换功能。
主要方法:
TrimSafe()- 安全去除字符串首尾空白字符RemoveWhiteSpace()- 移除字符串中的所有空白字符SubstringSafe(int startIndex, int length)- 安全截取字符串Left(int length)- 获取字符串左部指定长度的子串Right(int length)- 获取字符串右部指定长度的子串Reverse()- 反转字符串RemoveSpecialChars()- 移除字符串中的特殊字符ToCamelCase()- 转为 camelCase(首字母小写)ToPascalCase()- 转为 PascalCase(首字母大写)Repeat(int count)- 重复字符串指定次数ReplaceIgnoreCase(string oldValue, string newValue)- 忽略大小写替换字符串中的指定内容ContainsIgnoreCase(string value)- 判断字符串是否包含指定子串(忽略大小写)SplitSafe(string separator)- 将字符串按分隔符分割为字符串数组
6. 编码解码方法
Section titled “6. 编码解码方法”提供字符串编码解码功能。
主要方法:
ToBase64()- 将字符串编码为 Base64FromBase64()- 将 Base64 字符串解码UrlEncode()- URL 编码UrlDecode()- URL 解码HtmlEncode()- HTML 编码HtmlDecode()- HTML 解码
7. 哈希计算方法
Section titled “7. 哈希计算方法”提供字符串哈希值计算功能。
主要方法:
ToMd5()- 获取字符串的 MD5 值(32位小写)ToSha256()- 获取字符串的 SHA256 值ToSha1()- 获取字符串的 SHA1 值
8. 掩码和脱敏方法
Section titled “8. 掩码和脱敏方法”提供字符串掩码和脱敏功能。
主要方法:
Mask(int start, int length, char maskChar = '*')- 对字符串指定位置进行掩码MaskEmail()- 对邮箱地址进行掩码MaskMobile()- 对手机号码进行掩码MaskIdCard()- 对身份证号码进行掩码MaskBankCard()- 对银行卡号进行掩码
方法详细说明
Section titled “方法详细说明”IsNullOrEmpty
Section titled “IsNullOrEmpty”判断字符串是否为 null 或空字符串。
public static bool IsNullOrEmpty(this string value)参数:
value: 待判断的字符串
返回值:
- 如果字符串为 null 或空字符串,返回 true;否则返回 false
示例:
string str1 = null;string str2 = "";string str3 = "hello";
bool result1 = str1.IsNullOrEmpty(); // truebool result2 = str2.IsNullOrEmpty(); // truebool result3 = str3.IsNullOrEmpty(); // falseIsNull
Section titled “IsNull”判断字符串是否为空(支持自定义空值判断)。
public static bool IsNull(this string value, string nullStrings = "null|{}|[]", bool isTrim = false)参数:
value: 源字符串nullStrings: 自定义空字符串,使用 ”|” 分隔,默认为 “null||[]”isTrim: 是否移除首尾空白字符后再判断,默认为 false
返回值:
- 如果字符串为空或匹配自定义空字符串,返回 true;否则返回 false
示例:
string str1 = "null";string str2 = "{}";string str3 = "hello";
bool result1 = str1.IsNull(); // truebool result2 = str2.IsNull(); // truebool result3 = str3.IsNull(); // falseIsNumeric
Section titled “IsNumeric”判断字符串是否为数字。
public static bool IsNumeric(this string value)参数:
value: 待判断的字符串
返回值:
- 如果字符串可以解析为 double,返回 true;否则返回 false
示例:
string str1 = "123.45";string str2 = "abc";
bool result1 = str1.IsNumeric(); // truebool result2 = str2.IsNumeric(); // falseIsChinese
Section titled “IsChinese”判断字符串是否为中文字符。
public static bool IsChinese(this string value)参数:
value: 待判断的字符串
返回值:
- 如果字符串仅包含中文和中文标点,返回 true;否则返回 false
示例:
string str1 = "你好世界";string str2 = "Hello";
bool result1 = str1.IsChinese(); // truebool result2 = str2.IsChinese(); // false正则表达式验证
Section titled “正则表达式验证”IsEmail
Section titled “IsEmail”验证字符串是否为有效的电子邮件地址。
public static bool IsEmail(this string value)参数:
value: 待验证的字符串
返回值:
- 如果字符串为有效的电子邮件地址,返回 true;否则返回 false
示例:
string str1 = "test@example.com";string str2 = "invalid-email";
bool result1 = str1.IsEmail(); // truebool result2 = str2.IsEmail(); // falseIsMobile
Section titled “IsMobile”验证字符串是否为有效的手机号码(中国大陆)。
public static bool IsMobile(this string value)参数:
value: 待验证的字符串
返回值:
- 如果字符串为有效的手机号码,返回 true;否则返回 false
示例:
string str1 = "13812345678";string str2 = "12345678901";
bool result1 = str1.IsMobile(); // truebool result2 = str2.IsMobile(); // falseIsIdCard
Section titled “IsIdCard”验证字符串是否为有效的身份证号码(中国大陆)。
public static bool IsIdCard(this string value)参数:
value: 待验证的字符串
返回值:
- 如果字符串为有效的身份证号码,返回 true;否则返回 false
示例:
string str1 = "11010519900307233X";string str2 = "123456789012345";
bool result1 = str1.IsIdCard(); // truebool result2 = str2.IsIdCard(); // false将字符串转换为 int。
public static int ToInt(this string value, int defaultValue = 0)参数:
value: 待转换的字符串defaultValue: 转换失败时的默认值,默认为 0
返回值:
- 转换后的 int 值,失败时返回默认值
示例:
string str1 = "123";string str2 = "abc";
int result1 = str1.ToInt(); // 123int result2 = str2.ToInt(); // 0int result3 = str2.ToInt(-1); // -1ToDouble
Section titled “ToDouble”将字符串转换为 double。
public static double ToDouble(this string value, double defaultValue = 0)参数:
value: 待转换的字符串defaultValue: 转换失败时的默认值,默认为 0
返回值:
- 转换后的 double 值,失败时返回默认值
示例:
string str1 = "123.45";string str2 = "abc";
double result1 = str1.ToDouble(); // 123.45double result2 = str2.ToDouble(); // 0SubstringSafe
Section titled “SubstringSafe”安全截取字符串。
public static string SubstringSafe(this string value, int startIndex, int length)参数:
value: 源字符串startIndex: 起始位置length: 截取长度
返回值:
- 截取的子串,如果越界则返回尽可能多的字符
示例:
string str = "Hello World";
string result1 = str.SubstringSafe(0, 5); // "Hello"string result2 = str.SubstringSafe(6, 100); // "World"获取字符串左部指定长度的子串。
public static string Left(this string value, int length)参数:
value: 源字符串length: 要获取的长度
返回值:
- 左部子串
示例:
string str = "Hello World";
string result = str.Left(5); // "Hello"Reverse
Section titled “Reverse”反转字符串。
public static string Reverse(this string value)参数:
value: 源字符串
返回值:
- 反转后的字符串
示例:
string str = "Hello";
string result = str.Reverse(); // "olleH"ToBase64
Section titled “ToBase64”将字符串编码为 Base64。
public static string ToBase64(this string value)参数:
value: 源字符串
返回值:
- Base64 编码后的字符串
示例:
string str = "Hello World";
string result = str.ToBase64(); // "SGVsbG8gV29ybGQ="FromBase64
Section titled “FromBase64”将 Base64 字符串解码。
public static string FromBase64(this string value)参数:
value: Base64 编码的字符串
返回值:
- 解码后的字符串
示例:
string str = "SGVsbG8gV29ybGQ=";
string result = str.FromBase64(); // "Hello World"获取字符串的 MD5 值。
public static string ToMd5(this string value)参数:
value: 源字符串
返回值:
- MD5 哈希值(32位小写)
示例:
string str = "Hello World";
string result = str.ToMd5(); // "b10a8db164e0754105b7a99be72e3fe5"对字符串指定位置进行掩码。
public static string Mask(this string value, int start, int length, char maskChar = '*')参数:
value: 源字符串start: 掩码起始位置length: 掩码长度maskChar: 掩码字符,默认为 ’*’
返回值:
- 掩码后的字符串
示例:
string str = "13812345678";
string result = str.Mask(3, 4); // "138****5678"MaskMobile
Section titled “MaskMobile”对手机号码进行掩码。
public static string MaskMobile(this string value)参数:
value: 手机号码
返回值:
- 掩码后的手机号码
示例:
string str = "13812345678";
string result = str.MaskMobile(); // "138****5678"- 表单验证 - 验证用户输入的格式是否正确(如邮箱、手机号、地址等)
- 数据转换 - 安全地将字符串转换为各种数值类型
- 字符串处理 - 字符串截取、拼接、格式化等操作
- 数据清洗 - 移除特殊字符、空白字符等预处理
- 格式验证 - 验证数据是否符合特定格式要求
- 文本分析 - 判断文本内容类型(中文、数字、字母等)
- 安全处理 - 避免 null 异常的安全字符串操作
- 编码转换 - 字符串与各种编码格式之间的相互转换
- 所有方法都是扩展方法,需要通过
string实例调用 - 带有 “Safe” 后缀的方法对 null 值做了安全处理,不会抛出异常
- 类型转换方法在转换失败时返回指定的默认值,而不是抛出异常
- 正则表达式验证方法使用预编译的正则模式进行格式验证
- 数值约束方法支持四舍五入和截取两种小数处理方式
- 字符串操作方法支持边界检查,避免越界异常
- 哈希计算方法使用 UTF-8 编码进行字节转换
- 中文判断方法对 Unicode 字符范围进行识别
- 自定义空字符串判断支持多空值配置
- 所有方法都进行了空值有效性检查