import { i18n } from '@kit.LocalizationKit';/*** 字符工具类* author: 鸿蒙布道师* since: 2025/03/31*/
export class CharUtil {/*** 判断字符串是否是单个字符* @param char 输入字符串* @returns 是否为单个字符*/private static isSingleChar(char: string): boolean {return typeof char === 'string' && char.length === 1;}/*** 判断字符串是否是数字* @param char 单个字符* @returns 是否为数字*/static isDigit(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isDigit(char);}/*** 判断字符串是否是字母* @param char 单个字符* @returns 是否为字母*/static isLetter(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isLetter(char);}/*** 判断字符串是否是小写字母* @param char 单个字符* @returns 是否为小写字母*/static isLowerCase(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isLowerCase(char);}/*** 判断字符串是否是大写字母* @param char 单个字符* @returns 是否为大写字母*/static isUpperCase(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isUpperCase(char);}/*** 判断字符串是否是空格符* @param char 单个字符* @returns 是否为空格符*/static isSpaceChar(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isSpaceChar(char);}/*** 判断字符串是否是空白符* @param char 单个字符* @returns 是否为空白符*/static isWhitespace(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isWhitespace(char);}/*** 判断字符串是否是从右到左语言的字符* @param char 单个字符* @returns 是否为从右到左语言的字符*/static isRTL(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isRTL(char);}/*** 判断字符串是否是表意文字* @param char 单个字符* @returns 是否为表意文字*/static isIdeograph(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isIdeograph(char);}/*** 判断是否为空白符(包括空格、制表符、全角空格和不间断空格)* @param c 字符的 Unicode 编码值* @returns 是否为空白符*/static isBlankChar(c: number): boolean {const char = String.fromCharCode(c); // 将 Unicode 编码转换为字符return (CharUtil.isWhitespace(char) ||CharUtil.isSpaceChar(char) ||c === 0xfeff || // 字节顺序标记 (BOM)c === 0x202a || // 左至右嵌入 (LRE)c === 0x0000 // 空字符);}/*** 判断字符是否位于 ASCII 范围内(0-127)* @param char 字符* @returns 是否位于 ASCII 范围内*/static isAscii(char: string): boolean {return CharUtil.isSingleChar(char) && char.charCodeAt(0) < 128;}
}代码如下:
import { i18n } from '@kit.LocalizationKit';/*** 字符工具类* author: 鸿蒙布道师* since: 2025/03/31*/
export class CharUtil {/*** 判断字符串是否是单个字符* @param char 输入字符串* @returns 是否为单个字符*/private static isSingleChar(char: string): boolean {return typeof char === 'string' && char.length === 1;}/*** 判断字符串是否是数字* @param char 单个字符* @returns 是否为数字*/static isDigit(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isDigit(char);}/*** 判断字符串是否是字母* @param char 单个字符* @returns 是否为字母*/static isLetter(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isLetter(char);}/*** 判断字符串是否是小写字母* @param char 单个字符* @returns 是否为小写字母*/static isLowerCase(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isLowerCase(char);}/*** 判断字符串是否是大写字母* @param char 单个字符* @returns 是否为大写字母*/static isUpperCase(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isUpperCase(char);}/*** 判断字符串是否是空格符* @param char 单个字符* @returns 是否为空格符*/static isSpaceChar(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isSpaceChar(char);}/*** 判断字符串是否是空白符* @param char 单个字符* @returns 是否为空白符*/static isWhitespace(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isWhitespace(char);}/*** 判断字符串是否是从右到左语言的字符* @param char 单个字符* @returns 是否为从右到左语言的字符*/static isRTL(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isRTL(char);}/*** 判断字符串是否是表意文字* @param char 单个字符* @returns 是否为表意文字*/static isIdeograph(char: string): boolean {return CharUtil.isSingleChar(char) && i18n.Unicode.isIdeograph(char);}/*** 判断是否为空白符(包括空格、制表符、全角空格和不间断空格)* @param c 字符的 Unicode 编码值* @returns 是否为空白符*/static isBlankChar(c: number): boolean {const char = String.fromCharCode(c); // 将 Unicode 编码转换为字符return (CharUtil.isWhitespace(char) ||CharUtil.isSpaceChar(char) ||c === 0xfeff || // 字节顺序标记 (BOM)c === 0x202a || // 左至右嵌入 (LRE)c === 0x0000 // 空字符);}/*** 判断字符是否位于 ASCII 范围内(0-127)* @param char 字符* @returns 是否位于 ASCII 范围内*/static isAscii(char: string): boolean {return CharUtil.isSingleChar(char) && char.charCodeAt(0) < 128;}
}