You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中正则exec无匹配时解构报错如何给match赋空值

报错原因

RegExp.prototype.exec() 未匹配到符合规则的内容时,返回值是null而非数组。直接对null执行数组解构操作时,由于null没有实现[Symbol.iterator]()迭代方法,会触发Invalid attempt to destructure non-iterable instance的报错。

修复方案

对exec的返回值增加空值兜底,匹配失败时兜底为空数组,同时给解构的目标变量设置空字符串默认值即可,代码如下:

const regex = /\d+(\.\d{1,2})?/;
const value = "abd";
const [match = ""] = regex.exec(value) ?? [];
效果说明
  • 当value为"123abc"这类包含有效数字的内容时,exec返回匹配结果数组,第一个元素为完整匹配的"123",会正常赋值给match
  • 当value为"abd"这类无有效数字的内容时,exec返回null,通过空值合并运算符??兜底为空数组[],解构空数组时取不到首个元素,会自动使用预设的默认值""给match赋值,不会触发报错
  • 如果当前React Native运行环境版本较低不支持??运算符,可以替换为逻辑或运算符实现相同逻辑:const [match = ""] = regex.exec(value) || [];

内容的提问来源于stack exchange,提问作者user15322469

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 23:21:48