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;
}
}