javascript - 当其他人撤回他们的值时,regex.exec 返回“null”
问题描述
我正在尝试为正则表达式创建匹配项,但它一直说它是“null”。我以完全相同的方式声明了一个不同的变量,它可以很好地拉回这些值。
- 我已经确保 ecommerceRegEx 能够发挥其价值。
- 我已经确保 ecommercePortalAppointmentTime 能够发挥其价值。
我在 .exec 中添加了一个等待,它适用于另一个变量声明。
我已经确保所有内容都拼写正确并且所有变量都被正确引用。
//RegEx I am using
var ecommerceRegEx = /((?<time>\d+:\d+) (?<modifier>[AP])M (?<timezone>[A-Z]+))/gm
//Object I am getting the DOM property for
var ecommercePortalAppointmentTime = await Selector('[class="availability-option"]').find('span').nth(0).innerText
//Match I am attempting to create
var ecommercePortalMatch = ecommerceRegEx.exec(await ecommercePortalAppointmentTime)
//Console.log I am verifying the value is returned correctly
console.log("Ecomm Match: " + ecommercePortalMatch)
//Returns 'null'
预期结果:应该使用每个组的值创建一个数组。例如,如果字符串是:“您的约会时间是 CDT 上午 9:00”,则数组应该是 [9:00, AM, CDT]
实际结果:返回 'null'
解决方案
await
你里面的第二个ecommerceRegEx.exec
没有意义。您已经习惯await
了获取该变量。
此外,您的正则表达式不是有效的 JavaScript 正则表达式,因为 JS 不支持命名捕获组。看起来当您在 regex101.com 上调试它时,您使用了 PHP 选项。您可以在左侧菜单中更改它。
尝试这个:
//RegEx I am using
var ecommerceRegEx = /((\d+:\d+) ([AP])M ([A-Z]+))/gm
//Object I am getting the DOM property for
var ecommercePortalAppointmentTime = await Selector('[class="availability-option"]').find('span').nth(0).innerText
//Match I am attempting to create
var ecommercePortalMatch = ecommerceRegEx.exec(ecommercePortalAppointmentTime)
推荐阅读
- database - Postgres 使用索引搜索 jsonb
- python - 只打开最后一个链接 webbrowser.open
- python - PYTEST:在同一函数/api调用中通过monkeypatch传递不同的参数获得不同的响应
- terraform - 用于查询的雪花地形
- r - R:使用 R edgar 包从 SEC Edgar 数据库中读取旧的 13F txt 文件
- python - 在heroku上部署时推送被拒绝
- azure - 将文件上传到 Blob 存储中的内容长度错误
- python - 尝试将 Json 转换为 Dataframe 时,得到'TypeError:'float'类型的对象没有 len()'
- c# - 如何在 Windows 11 中找到 Windows 产品名称?
- wso2 - 通过在发布者 UI 中输入试用选项卡调用 API 时出错