簡體   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