鸿蒙三方库 | harmony-utils之RegexUtil正则匹配验证详解 前言正则表达式是文本匹配和验证的强大工具但编写和记忆正则模式并不容易。pura/harmony-utils的RegexUtil封装了常用正则验证方法开发者无需手写正则即可完成常见验证。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、RegexUtil核心APIRegexUtil提供了以下正则验证方法方法说明返回类型使用场景isEmail(str)是否邮箱boolean邮箱校验isPhone(str)是否手机号boolean手机号校验isUrl(str)是否URLboolean链接校验isIdCard(str)是否身份证号boolean身份验证isChinese(str)是否纯中文boolean中文检查isNumber(str)是否纯数字boolean数字检查matches(str, regex)自定义正则匹配boolean自定义验证1.1 核心特性简洁易用封装复杂正则为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理内置异常捕获机制避免运行时崩溃常用覆盖覆盖邮箱、手机号、URL、身份证等常见验证1.2 验证方法对照方法有效示例无效示例说明isEmailtestqq.comtest邮箱格式isPhone138001380001234511位手机号isUrlhttps://a.comabcURL格式isIdCard1101011990010112341234518位身份证二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 邮箱验证import{RegexUtil}frompura/harmony-utils;Button(邮箱验证).width(100%).onClick((){try{letr1RegexUtil.isEmail(testexample.com);letr2RegexUtil.isEmail(invalid-email);this.resulttestexample.com:${r1?有效 ✅:无效 ❌}\ninvalid-email:${r2?有效 ✅:无效 ❌};}catch(e){this.result异常: e;}})2.3 手机号验证Button(手机号验证).width(100%).onClick((){try{letr1RegexUtil.isPhone(13800138000);letr2RegexUtil.isPhone(12345);this.result13800138000:${r1?有效 ✅:无效 ❌}\n12345:${r2?有效 ✅:无效 ❌};}catch(e){this.result异常: e;}})三、完整页面示例import{RegexUtil,ToastUtil}frompura/harmony-utils;EntryComponentstruct RegexDemo{Stateresult:string;Stateinput:string;build(){Column({space:12}){TextInput({text:this.input}).onChange(vthis.inputv)Button(验证邮箱).width(100%).onClick((){this.result邮箱:${RegexUtil.isEmail(this.input)?有效 ✅:无效 ❌};});Button(验证手机号).width(100%).onClick((){this.result手机号:${RegexUtil.isPhone(this.input)?有效 ✅:无效 ❌};});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 表单综合校验import{RegexUtil,ToastUtil}frompura/harmony-utils;functionvalidateRegisterForm(email:string,phone:string):boolean{if(!RegexUtil.isEmail(email)){ToastUtil.show(邮箱格式不正确);returnfalse;}if(!RegexUtil.isPhone(phone)){ToastUtil.show(手机号格式不正确);returnfalse;}returntrue;}4.2 自定义正则functionisPostalCode(str:string):boolean{returnRegexUtil.matches(str,/^\d{6}$/);}五、注意事项手机号规则isPhone基于中国大陆手机号规则身份证校验isIdCard仅校验格式不验证真实性URL协议isUrl通常要求包含协议前缀初始化依赖使用前需确保AppUtil.init()已调用正则性能复杂正则可能影响性能六、常见问题Q1: isPhone支持国际手机号吗默认仅支持中国大陆手机号国际号码需自定义正则。Q2: isIdCard支持15位身份证吗取决于实现通常支持18位新版身份证。Q3: isUrl对IP地址有效吗通常有效如 http://192.168.1.1 会被识别为URL。Q4: 如何添加自定义验证规则使用matches方法传入自定义正则表达式即可。总结RegexUtil的正则验证方法为表单校验提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法快速实现邮箱、手机号等常见验证。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。

本月热点