鸿蒙NEXT开发格式化工具类(ArkTs)

import { i18n } from '@kit.LocalizationKit';/*** 格式化工具类* 提供电话号码格式化、归属地查询、字符转换等功能。* author: 鸿蒙布道师* since: 2025/04/14*/
export class FormatUtil {/*** 判断传入的电话号码格式是否正确。* @param phone - 待验证的电话号码* @param country - 电话号码所属国家或地区代码,默认为 "CN"(中国)* @param option - 电话号码格式化选项,默认为 NATIONAL* @returns 如果电话号码格式正确返回 true,否则返回 false*/static isPhone(phone: string,country: string = "CN",option?: i18n.PhoneNumberFormatOptions): boolean {if (!phone || !country) {throw new Error("Phone number and country code cannot be empty.");}const phoneNumberFormat = new i18n.PhoneNumberFormat(country, option);return phoneNumberFormat.isValidNumber(phone);}/*** 对电话号码进行格式化。* @param phone - 待格式化的电话号码* @param country - 电话号码所属国家或地区代码,默认为 "CN"(中国)* @param option - 电话号码格式化选项,默认为 NATIONAL* @returns 格式化后的电话号码字符串*/static getPhoneFormat(phone: string,country: string = "CN",option?: i18n.PhoneNumberFormatOptions): string {if (!phone || !country) {throw new Error("Phone number and country code cannot be empty.");}const phoneNumberFormat = new i18n.PhoneNumberFormat(country, option);return phoneNumberFormat.format(phone);}/*** 获取电话号码归属地。* @param phone - 待查询的电话号码* @param locale - 区域 ID,默认为 "zh-CN"* @param country - 电话号码所属国家或地区代码,默认为 "CN"(中国)* @param option - 电话号码格式化选项,默认为 NATIONAL* @returns 电话号码归属地名称*/static getPhoneLocationName(phone: string,locale: string = "zh-CN",country: string = "CN",option?: i18n.PhoneNumberFormatOptions): string {if (!phone || !country || !locale) {throw new Error("Phone number, country code, and locale cannot be empty.");}const phoneNumberFormat = new i18n.PhoneNumberFormat(country, option);return phoneNumberFormat.getLocationName(phone, locale);}/*** 将输入字符串从源格式转换为目标格式(如中文汉字转为拼音)。* @param text - 输入字符串* @returns 转换后的字符串*/static transliterator(text: string): string {if (!text) {throw new Error("Input text cannot be empty.");}const transliterator = i18n.Transliterator.getInstance('Any-Latn');return transliterator.transform(text);}/*** 解析 iconFont 字符。* @param iconFont - iconFont 字符(如 "e631")* @returns 解析后的 Unicode 字符*/static getIconFont(iconFont: string): string {if (!iconFont) {throw new Error("Icon font string cannot be empty.");}return String.fromCharCode(parseInt(iconFont, 16));}
}代码如下:
import { i18n } from '@kit.LocalizationKit';/*** 格式化工具类* 提供电话号码格式化、归属地查询、字符转换等功能。* author: 鸿蒙布道师* since: 2025/04/14*/
export class FormatUtil {/*** 判断传入的电话号码格式是否正确。* @param phone - 待验证的电话号码* @param country - 电话号码所属国家或地区代码,默认为 "CN"(中国)* @param option - 电话号码格式化选项,默认为 NATIONAL* @returns 如果电话号码格式正确返回 true,否则返回 false*/static isPhone(phone: string,country: string = "CN",option?: i18n.PhoneNumberFormatOptions): boolean {if (!phone || !country) {throw new Error("Phone number and country code cannot be empty.");}const phoneNumberFormat = new i18n.PhoneNumberFormat(country, option);return phoneNumberFormat.isValidNumber(phone);}/*** 对电话号码进行格式化。* @param phone - 待格式化的电话号码* @param country - 电话号码所属国家或地区代码,默认为 "CN"(中国)* @param option - 电话号码格式化选项,默认为 NATIONAL* @returns 格式化后的电话号码字符串*/static getPhoneFormat(phone: string,country: string = "CN",option?: i18n.PhoneNumberFormatOptions): string {if (!phone || !country) {throw new Error("Phone number and country code cannot be empty.");}const phoneNumberFormat = new i18n.PhoneNumberFormat(country, option);return phoneNumberFormat.format(phone);}/*** 获取电话号码归属地。* @param phone - 待查询的电话号码* @param locale - 区域 ID,默认为 "zh-CN"* @param country - 电话号码所属国家或地区代码,默认为 "CN"(中国)* @param option - 电话号码格式化选项,默认为 NATIONAL* @returns 电话号码归属地名称*/static getPhoneLocationName(phone: string,locale: string = "zh-CN",country: string = "CN",option?: i18n.PhoneNumberFormatOptions): string {if (!phone || !country || !locale) {throw new Error("Phone number, country code, and locale cannot be empty.");}const phoneNumberFormat = new i18n.PhoneNumberFormat(country, option);return phoneNumberFormat.getLocationName(phone, locale);}/*** 将输入字符串从源格式转换为目标格式(如中文汉字转为拼音)。* @param text - 输入字符串* @returns 转换后的字符串*/static transliterator(text: string): string {if (!text) {throw new Error("Input text cannot be empty.");}const transliterator = i18n.Transliterator.getInstance('Any-Latn');return transliterator.transform(text);}/*** 解析 iconFont 字符。* @param iconFont - iconFont 字符(如 "e631")* @returns 解析后的 Unicode 字符*/static getIconFont(iconFont: string): string {if (!iconFont) {throw new Error("Icon font string cannot be empty.");}return String.fromCharCode(parseInt(iconFont, 16));}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/76728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Python基础速成]2-模块与包与OOP

上篇➡️[Python基础速成]1-Python规范与核心语法 目录 Python模块创建模块与导入属性__name__dir()函数标准模块 Python包类类的专有方法 对象继承多态 Python模块 Python 中的模块(Module)是一个包含 Python 定义和语句的文件,文件名就是模…

OSI参考模型和TCP/IP模型

1.OSI参考模型 OSI模型: OSI参考模型有7层,自下而上依次为物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。(记忆口诀:物联网叔会用)。低…

linux Shell编程之循环语句(三)

目录 一. for 循环语句 1. for语句的结构 2. for 语句应用示例 (1) 根据姓名列表批量添加用户 (2) 根据 IP 地址列表检查主机状态 二. 使用 while 循环语句 1. while 语句的结构 2. while 语句应用示例 (1) 批量添加规律编号的用户 (2) 猜价格游戏 三. until 循环语…

最新扣子实战教程,利用扣子平台通过在线表格记录,批量生图,再也不要一条条的粘贴提示词了

1、功能描述 大家好,我是涛涛。今天我要给大家讲解如何在扣子平台上对接飞书电子表格。由于多维表格相对复杂,而很多业务场景其实只需要电子表格就能满足,因此今天我们将演示如何在扣子平台上读取飞书电子表格并批量生成图片。 先看效果&am…

java -jar指定类加载

在 Java 中,使用 java -jar 命令运行 JAR 文件时,默认会加载 JAR 文件的 MANIFEST.MF 文件中指定的 Main-Class。如果你想在运行时指定一个类来加载,可以通过以下方式实现: 方法 1:直接指定类路径和类名 如果你不想使用…

多模态思维链(Multimodal Chain of Thought, MCoT)六大技术支柱在医疗领域的应用

多模态思维链(Multimodal Chain of Thought, MCoT)通过整合文本、图像、视频等多模态数据,结合逻辑推理与深度学习技术,在医疗领域展现出强大的应用潜力。其六大技术支柱在医疗场景中的具体应用如下: 一、推理构建视角:医学诊断的流程优化 MCoT通过多模态推理链生成技术…

从文本到视频:基于扩散模型的AI生成系统全解析(附PyTorch实现)

当语言遇见动态视觉 "用文字生成电影场景"曾是科幻作品中的幻想,如今借助扩散模型(Diffusion Models)正逐步成为现实。本文将手把手带你实现一个创新的文本到视频生成系统,通过深度解析扩散模型原理,结合独…

科普:如何通过ROC曲线,确定二分类的“理论阈值”

在二分类问题中,已知预测概率(如逻辑回归、神经网络输出的概率值)时,阈值的选择直接影响分类结果(正/负样本判定)。 一、实践中的阈值选择方法 1. 基于业务目标的调整 最大化准确率:适用于样…

2025ArkTS基础UI(一)——Column、Row、Text、Button组件

2025ArkTS基础UI(一)——Column、Row、Text、Button组件 前言 臭宝们,今天我们来学习ArkTS基础UI组件的使用,其中包括: Column、Row、Text、Button组件。 知识点 Colum、Row组件用于布局,Text、Image、Button组件用于展示。 …

强化学习:基于价值的方法做的是回归,基于策略的方法做的是分类,可以这么理解吗?

在强化学习领域,基于价值的方法(Value-based Methods)和基于策略的方法(Policy-based Methods)是两种核心范式。本文将从目标函数、优化机制以及与机器学习任务的类比角度,探讨这两种方法是否可以被分别理解为回归和分类任务,并深入分析其内在逻辑。 一、基于价值的方法…

折叠屏手机:技术进步了,柔性OLED面板测试技术需求跟上了吗?

全球智能手机市场陷入创新焦虑,折叠屏手机被寄予厚望,2023 年出货量同比增长 62%。但在供应链技术狂欢背后,存在诸多问题。消费端数据显示,用户使用频率低,定价策略反常。产业链重构虽让部分企业获利,却推高…

前端在线工具 CodePen 和 JSFiddle

前端在线工具 CodePen 和 JSFiddle CodePen 概述:CodePen 是一个社交化的前端开发环境,用户可以在这里创建代码片段(称为“Pens”),分享和展示自己的前端开发作品。 主要功能: 实时预览:用户在…

Redis-场景缓存+秒杀+管道+消息队列

缓存一致性 1.两次更新 先更新数据库,再更新缓存;先更新缓存,再更新数据库; 出现不一致问题场景: 先更新数据库,再更新缓存; 先更新缓存,再更新数据库; 两次更新的适…

[Windows] 字体渲染 mactype v2025.4.11

[Windows] 字体渲染 mactype 链接:https://pan.xunlei.com/s/VONeCUP2hEgO5WIQImgtGUmrA1?pwdyruf# 025.4.11 Variable font support 可变字体支持已到来。 本版本将可变字体支持扩展到所有 GDI 应用程序。 所有 win32 程序中的字体,如 Noto Sans、Se…

【C++】深拷贝与浅拷贝

重开也不是不可能 ~.~ 浅拷贝 #include <iostream> #include <cstring>class ShallowCopyExample { public:int m_nValue;int* m_pData;// 构造函数&#xff0c;初始化指针成员ShallowCopyExample(int value) : m_nValue(value) {m_pData new int(0);*m_pData va…

SpringBoot企业级开发之【用户模块-更新用户头像】

功能如下所示&#xff1a; 我们先看一下接口文档&#xff1a; 为什么头像是一串字符串呢&#xff1f;因为我们是将头像图片放到第三方去存储&#xff0c;比如&#xff1a;阿里云等 开发思路&#xff1a; 实操&#xff1a; 1.controller 注意!这里使用【PatchMapping】注解…

vue3+vite+js项目引入electron构建跨平台桌面应用

1.准备工作 ① 必要安装node.js、vue、vite、electron、pnpm 本人用的node版本v18.17.1、vue版本^3.4.19、vite版本^3.2.7、electron版本^35.1.4 ② 开发调试打包安装 "devDependencies": {"concurrently": "^9.1.2","electron-builder&…

(51单片机)串口通讯(串口通讯教程)(串口接收发送教程)

前言&#xff1a; 今天有两个项目&#xff0c;分别为&#xff1a; 串口接收: 串口发送&#xff1a; 如上图将文件放在Keli5 中即可&#xff0c;然后烧录在单片机中就行了 烧录软件用的是STC-ISP&#xff0c;不知道怎么安装的可以去看江科大的视频&#xff1a; 【51单片机入门…

《汽车制造技术基础》第一次作业

作业内容 查阅相关资料&#xff0c;谈谈对汽车制造技术的发展的理解。 可以是关于汽车的先进制造技术 或 汽车先进制造技术 与 制造理念的发展趋势 或 汽车先进制造技术对环境与可持续发展的影响等。 以下从技术突破、制造理念转型及环境影响三个维度展开对汽车制造技…

Scala day4(tuple, set and map)

Foreword Hi!! my dear friends, are you lazy at today?? Oh! I am also lazy sometimes, but you will know keep study that’s a right way at last. Now!! let’s start new travel about Scala. Text The all Codes in file day3.scala, like the below program: i…