前言

字符串空值判断是开发中最常见的操作之一,null、undefined、空字符串、纯空格等都需要处理。@pura/harmony-utilsStrUtil 封装了丰富的字符串判断方法。本文将从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 安装依赖

ohpm install @pura/harmony-utils

2.2 空值判断

import { StrUtil } from '@pura/harmony-utils';

Button('isEmpty判断')
  .width('100%')
  .onClick(() => {
    try {
      let r1 = StrUtil.isEmpty('');
      let r2 = StrUtil.isEmpty(null);
      let r3 = 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 {
      let r1 = StrUtil.isBlank('');
      let r2 = StrUtil.isBlank('   ');
      let r3 = StrUtil.isBlank('hello');
      this.result = `isBlank(''): ${r1}\nisBlank('   '): ${r2}\nisBlank('hello'): ${r3}`;
    } catch (e) {
      this.result = '异常: ' + e;
    }
  })

在这里插入图片描述

三、完整页面示例

import { StrUtil } from '@pura/harmony-utils';

@Entry
@Component
struct StrEmptyDemo {
  @State result: string = '';

  build() {
    Column({ space: 12 }) {
      Button('isEmpty测试').width('100%').onClick(() => {
        let r1 = StrUtil.isEmpty('');
        let r2 = StrUtil.isEmpty('hello');
        this.result = `isEmpty(''): ${r1}, isEmpty('hello'): ${r2}`;
      });
      Button('isBlank测试').width('100%').onClick(() => {
        let r1 = StrUtil.isBlank('   ');
        let r2 = 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';

function validateForm(name: string, phone: string): boolean {
  if (StrUtil.isBlank(name)) {
    ToastUtil.show('请输入姓名');
    return false;
  }
  if (StrUtil.isBlank(phone)) {
    ToastUtil.show('请输入手机号');
    return false;
  }
  return true;
}

4.2 安全取值

function safeGetString(value: string | null | undefined, defaultVal: string): string {
  return StrUtil.isNotBlank(value) ? value! : defaultVal;
}

五、注意事项

  1. null安全:StrUtil方法对null和undefined安全,不会抛异常
  2. 空白字符:isBlank会检查空格、制表符等空白字符
  3. 性能优化:频繁调用时建议缓存结果
  4. 初始化依赖:使用前需确保 AppUtil.init() 已调用
  5. 链式调用:可与其他StrUtil方法链式使用

六、常见问题

Q1: isEmpty和isBlank有什么区别?

isEmpty只检查null/undefined/空字符串,isBlank还会检查纯空格字符串。

Q2: isNullOrUndefined什么时候用?

当只需要判断是否为null或undefined,不关心空字符串时使用。

Q3: 中文空格算空白吗?

是的,全角空格也属于空白字符,isBlank会返回true。

Q4: 如何判断字符串是否只有数字?

请使用RegexUtil.isNumber()方法。

在这里插入图片描述
在这里插入图片描述

总结

StrUtil 的字符串判断方法为空值检查提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法简化表单校验和安全取值等操作。

本文基于 @pura/harmony-utils 工具库,更多功能请参考官方文档与后续系列文章。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐