欢迎访问艾立兹站 Aliz- 专注建站教程与技术分享
您当前的位置:首页 > 鸿蒙开发

鸿蒙HarmonyOS正则表达式使用实战笔记(常用正则大全+ArkTS示例)

时间:2026-06-27 08:10:47  来源:阿里站  作者:SKY  阅读:

鸿蒙HarmonyOS正则表达式使用实战笔记(常用正则大全+ArkTS示例)
HarmonyOS鸿蒙开发 中,正则表达式是数据校验、字符串匹配、内容替换、格式筛选的核心工具,广泛应用于表单验证、手机号/邮箱校验、密码规则匹配、文本过滤、数据截取等业务场景。鸿蒙 ArkTS 完全兼容标准 JavaScript/ES6 正则语法,同时适配鸿蒙应用开发专属业务场景。
本文为鸿蒙正则表达式实战笔记,从零讲解正则基础语法、ArkTS 标准用法、高频业务正则模板、正则方法区别、开发避坑问题,所有代码可直接在鸿蒙项目中复制运行,适合零基础开发者收藏复用,适配所有鸿蒙 API 版本。

一、鸿蒙正则表达式基础说明

HarmonyOS ArkTS 中使用的正则表达式,遵循 ECMAScript 标准,无需导入额外模块,原生支持两种创建方式:字面量创建、RegExp 对象创建,适配所有鸿蒙页面、工具类、全局方法调用。

1. 两种正则创建方式

方式1:字面量创建(推荐,性能更高)
适用于固定正则规则,编译阶段即可确定规则,鸿蒙开发首选。

 
// 正则语法:/匹配规则/修饰符 const regPhone = /^1[3-9]\d{9}$/;
方式2:RegExp 构造函数创建
适用于动态正则规则,可拼接变量,适配动态校验场景。

 
// 支持变量拼接,动态生成正则 const keyWord = '鸿蒙'; const reg = new RegExp(keyWord, 'g');

2. 常用正则修饰符(鸿蒙必备)

修饰符用于控制正则匹配规则,是鸿蒙字符串处理高频参数:
  • g:global 全局匹配,匹配所有结果,而非匹配到第一个就终止
  • i:ignoreCase 忽略大小写匹配
  • m:multiline 多行匹配,适配换行文本校验

二、ArkTS 正则核心方法详解

鸿蒙开发中,正则使用主要分为 正则对象方法字符串对象方法,不同方法适用场景不同,新手极易混淆。

1. test():校验字符串是否匹配(最常用)

用于表单校验、格式判断,返回布尔值 true/false,是鸿蒙业务开发使用最多的方法。

 
// 手机号校验示例 const regPhone = /^1[3-9]\d{9}$/; const phoneStr = '13800138000'; // 返回布尔值 const isMatch = regPhone.test(phoneStr); console.log('手机号是否合规:', isMatch); // true

2. exec():获取匹配详情与分组内容

用于精准提取匹配内容、分组取值,返回匹配数组详情,支持正则分组捕获,适合数据截取场景。

 
// 提取数字分组 const reg = /(\d{4})-(\d{2})-(\d{2})/; const dateStr = '2026-06-27 鸿蒙开发'; const result = reg.exec(dateStr); console.log('完整匹配结果:', result?.[0]); // 2026-06-27 console.log('年份:', result?.[1]); // 2026 console.log('月份:', result?.[2]); // 06

3. 字符串正则方法:match / replace / search

鸿蒙字符串原生支持正则参数,无需额外转换,适配文本替换、内容检索。

 
const content = '鸿蒙开发123,ArkTS正则456'; // 1. match:获取所有匹配结果 const numList = content.match(/\d+/g); console.log('匹配数字:', numList); // ['123', '456'] // 2. replace:正则全局替换 const newContent = content.replace(/\d+/g, ''); console.log('去除数字:', newContent); // 鸿蒙开发,ArkTS正则 // 3. search:检索匹配位置 const index = content.search(/ArkTS/); console.log('关键词位置:', index);

三、鸿蒙开发高频正则模板(直接复用)

整理鸿蒙项目中100%可直接使用的业务正则,覆盖表单校验、文本过滤、格式验证所有主流场景,适配电商、工具类、社交类鸿蒙应用。

1. 手机号校验(国内手机号)


 
/** * 鸿蒙手机号校验 * 支持13/14/15/16/17/18/19开头所有国内手机号 */ export function checkPhone(phone: string): boolean { const reg = /^1[3-9]\d{9}$/; return reg.test(phone); }

2. 邮箱格式校验


 
/** * 鸿蒙邮箱校验 * 支持常规企业邮箱、个人邮箱 */ export function checkEmail(email: string): boolean { const reg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/; return reg.test(email); }

3. 密码强度校验(6-20位字母+数字)


 
/** * 密码校验:6-20位,必须包含字母+数字 */ export function checkPwd(pwd: string): boolean { const reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/; return reg.test(pwd); }

4. 纯数字/纯字母校验


 
// 纯数字 export function checkNumber(str: string): boolean { return /^\d+$/.test(str); } // 纯英文字母(大小写) export function checkLetter(str: string): boolean { return /^[a-zA-Z]+$/.test(str); }

5. 去除空格(首尾/全部空格)


 
// 去除首尾空格 export function trimSpace(str: string): string { return str.replace(/^\s+|\s+$/g, ''); } // 去除所有空格 export function trimAllSpace(str: string): string { return str.replace(/\s+/g, ''); }

6. 中文姓名校验


 
/** * 中文姓名校验:2-6位中文,适配常规姓名 */ export function checkChineseName(name: string): boolean { const reg = /^[\u4e00-\u9fa5]{2,6}$/; return reg.test(name); }

7. 身份证号校验(18位)


 
/** * 18位身份证号校验 */ export function checkIdCard(card: string): boolean { const reg = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/; return reg.test(card); }

8. 链接URL校验


 
/** * 网络链接校验 * 支持http/https协议 */ export function checkUrl(url: string): boolean { const reg = /^(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?$/; return reg.test(url); }

四、鸿蒙正则分组捕获与取值实战

分组捕获是正则的高阶用法,可快速截取字符串中指定内容,常用于截取链接参数、提取文本数字、格式化字符串

 
/** * 正则分组提取URL参数 */ function getUrlParam(url: string, key: string): string | null { const reg = new RegExp('(^|&|\\?)' + key + '=([^&]*)(&|$)'); const result = reg.exec(url); return result ? result[2] : null; } // 测试调用 const testUrl = 'https://www.aliz.cn?name=鸿蒙教程&id=1001'; console.log(getUrlParam(testUrl, 'name')); // 鸿蒙教程

五、鸿蒙正则开发高频避坑指南

  • 全局匹配g修饰符导致test结果错乱:带 g 修饰符的正则,每次 test/exec 会记录索引,循环校验时会出现 true/false 交替错乱,表单单次校验建议不加 g。
  • 动态正则未转义特殊字符:使用 RegExp 构造函数拼接变量时,. * + ? \ 等特殊字符需要转义,否则正则规则失效。
  • 中文匹配编码错误:鸿蒙中文正则必须使用 \u4e00-\u9fa5,禁止使用其他编码格式,避免真机匹配失效。
  • 空字符串校验漏洞:正则匹配成功后,必须额外判断字符串非空,避免空字符串通过格式校验。
  • 大小写未适配:账号、验证码校验场景,建议添加 i 忽略大小写修饰符,避免校验严格导致用户体验差。

六、鸿蒙正则最佳开发实践

  1. 固定规则用字面量:固定校验规则优先使用 /xxx/ 字面量,性能优于 RegExp 构造函数。
  2. 动态规则用构造函数:需要拼接变量、动态生成规则时,统一使用 new RegExp()
  3. 通用正则封装工具类:将手机号、邮箱、密码等通用校验方法封装为全局工具方法,全局复用、统一维护。
  4. 真机兼容优先:鸿蒙正则完全兼容 ES6 语法,无需适配不同设备,代码可全机型通用。
  5. 禁止滥用全局g修饰符:仅字符串批量替换、批量匹配场景使用 g,表单布尔校验无需添加。

七、总结

鸿蒙 HarmonyOS 正则表达式基于标准 ES6 语法,入门简单、实用性极强,是 ArkTS 开发中数据处理与表单校验的核心工具。开发者只需掌握 test 校验、exec 取值、replace 替换 三大核心方法,结合本文整理的高频业务正则模板,即可覆盖 99% 的鸿蒙字符串处理场景。
建议将常用正则封装为全局工具类,统一项目校验规则,提升开发效率与代码规范性。

本文配套模板、静态源码可前往艾立兹素材库alisucai.com下载

发表评论 共有0条评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
公众号二维码

扫码关注公众号
获取全套技术教程