前言
字符串空值判断是开发中最常见的操作之一,null、undefined、空字符串、纯空格等都需要处理。@pura/harmony-utils的StrUtil封装了丰富的字符串判断方法。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解,帮助开发者快速掌握并应用到实际项目中。
一、StrUtil判断核心API
StrUtil提供了以下字符串判断方法:
| 方法 | 说明 | 返回类型 | 使用场景 |
|---|---|---|---|
isEmpty(str) | 是否为空 | boolean | 空值检查 |
isNotEmpty(str) | 是否非空 | boolean | 非空判断 |
isBlank(str) | 是否空白 | boolean | 空白检查 |
isNotBlank(str) | 是否非空白 | boolean | 有效内容 |
isNullOrUndefined(str) | 是否null或undefined | boolean | 类型检查 |
1.1 核心特性
- 简洁易用:封装复杂逻辑为一行调用,降低使用门槛
- 类型安全:完整的TypeScript类型定义,编译期即可发现错误
- 异常处理:内置异常捕获机制,避免运行时崩溃
- 全面覆盖:覆盖null、undefined、空字符串、纯空格等场景
1.2 isEmpty与isBlank对比
| 输入 | isEmpty | isBlank |
|---|---|---|
null | true | true |
undefined | true | true |
'' | true | true |
' ' | false | true |
'hello' | false | false |
二、完整使用步骤
2.1 安装依赖
ohpminstall@pura/harmony-utils2.2 空值判断
import{StrUtil}from'@pura/harmony-utils';Button('isEmpty判断').width('100%').onClick(()=>{try{letr1=StrUtil.isEmpty('');letr2=StrUtil.isEmpty(null);letr3=StrUtil.isEmpty('hello');this.result=`isEmpty(''):${r1}\nisEmpty(null):${r2}\nisEmpty('hello'):${r3}`;}catch(e){this.result='异常: '+e;}})2.3 空白判断
Button('isBlank判断').width('100%').onClick(()=>{try{letr1=StrUtil.isBlank('');letr2=StrUtil.isBlank(' ');letr3=StrUtil.isBlank('hello');this.result=`isBlank(''):${r1}\nisBlank(' '):${r2}\nisBlank('hello'):${r3}`;}catch(e){this.result='异常: '+e;}})三、完整页面示例
import{StrUtil}from'@pura/harmony-utils';@Entry@Componentstruct StrEmptyDemo{@Stateresult:string='';build(){Column({space:12}){Button('isEmpty测试').width('100%').onClick(()=>{letr1=StrUtil.isEmpty('');letr2=StrUtil.isEmpty('hello');this.result=`isEmpty(''):${r1}, isEmpty('hello'):${r2}`;});Button('isBlank测试').width('100%').onClick(()=>{letr1=StrUtil.isBlank(' ');letr2=StrUtil.isNotBlank(' hello ');this.result=`isBlank(' '):${r1}, isNotBlank(' hello '):${r2}`;});Text(this.result).fontSize(14).fontColor('#333333')}.padding(16)}}四、进阶用法
4.1 表单校验
import{StrUtil,ToastUtil}from'@pura/harmony-utils';functionvalidateForm(name:string,phone:string):boolean{if(StrUtil.isBlank(name)){ToastUtil.show('请输入姓名');returnfalse;}if(StrUtil.isBlank(phone)){ToastUtil.show('请输入手机号');returnfalse;}returntrue;}4.2 安全取值
functionsafeGetString(value:string|null|undefined,defaultVal:string):string{returnStrUtil.isNotBlank(value)?value!:defaultVal;}五、注意事项
- null安全:StrUtil方法对null和undefined安全,不会抛异常
- 空白字符:isBlank会检查空格、制表符等空白字符
- 性能优化:频繁调用时建议缓存结果
- 初始化依赖:使用前需确保
AppUtil.init()已调用 - 链式调用:可与其他StrUtil方法链式使用
六、常见问题
Q1: isEmpty和isBlank有什么区别?
isEmpty只检查null/undefined/空字符串,isBlank还会检查纯空格字符串。
Q2: isNullOrUndefined什么时候用?
当只需要判断是否为null或undefined,不关心空字符串时使用。
Q3: 中文空格算空白吗?
是的,全角空格也属于空白字符,isBlank会返回true。
Q4: 如何判断字符串是否只有数字?
请使用RegexUtil.isNumber()方法。
总结
StrUtil的字符串判断方法为空值检查提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法简化表单校验和安全取值等操作。
本文基于
@pura/harmony-utils工具库,更多功能请参考官方文档与后续系列文章。