鴻蒙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.pswp.cn/pingmian/76728.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76728.shtml
英文地址,請注明出處:http://en.pswp.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…