亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

UnhandledPromiseRejectionWarning: SyntaxError:

UnhandledPromiseRejectionWarning: SyntaxError:

偶然的你 2023-05-25 16:57:31
我一直在研究用于 url 查詢的解析器,但我很困惑為什么正則表達式在通過regex101.com?進行測試期間工作時不正確,或者至少我認為是這樣,這是一個深夜編碼;問題:UnhandledPromiseRejectionWarning: SyntaxError: Invalid regular expression: /\?(?<query>.*)/: Invalid group? ?const results = url.match(/\?(?<query>.*)/);? ? if (!results) {? ? ? ? return {};? ? }? ? const { groups: { query } } = results;? ? const pairs = query.match(/(?<param>\w+)=(?<value>\w+)/g);? ? const params = pairs.reduce((acc, curr) => {? ? ? ? const [key, value] = curr.split(("="));? ? ? ? acc[key] = value;? ? ? ? return acc;? ? }, {});? ? return params;
查看完整描述

1 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

命名捕獲組僅在 Node 10+ 中受支持。您需要更新您的節點版本。(低于 10 的節點版本非常舊,即使不是因為這個問題,更新也是個好主意)

如果出于某種原因不允許您這樣做,您可以將其設為普通捕獲組而不是命名捕獲組:

/\?(.*)/

然后從匹配 (?[1]) 中提取第一組。從查詢字符串中提取對也是如此。

在現代版本的 Node 上,您還可以使用更語義化的Object.fromEntries而不是reduce

const?params?=?Object.fromEntries(
??pairs.map(pair?=>?pair.split('='))
);


查看完整回答
反對 回復 2023-05-25
  • 1 回答
  • 0 關注
  • 316 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號