繁体   English   中英

对不可迭代实例的解构尝试无效。 为了可迭代,非数组对象必须有一个 [Symbol.iterator]() 方法

[英]Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method

我正在使用带有正则表达式的本机反应

如果我使用我的代码

发生此错误

对不可迭代实例的解构尝试无效。 为了可迭代,非数组对象必须具有 Symbol.iterator 方法。

如果我的正则表达式中包含除数字和小数点以外的任何字符,我想在匹配项中放置一个空值,例如 ' '。 如果将“123abc”放入 value 变量中,则 match 返回“123”,但如果将“acv”放入 value 常量中,则会出现上述错误。 在这种情况下,如何将空字符串放入匹配项而不产生错误?

 const regex = /\d+(\.\d{1,2})?/;

const value = "abd"
const [match] = regex.exec(value);

你可以使用|| 操作员。 如果exec返回null ,它将默认为空字符串''

 function getStrings(value) { const regex = /\d+(\.\d{1,2})?/; const [match] = [regex.exec(value) || '']; if(Array.isArray(match)) return match[0] return match } console.log(getStrings("abd")) console.log(getStrings("123abd"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM