首页 > 解决方案 > 使用正则表达式从字符串中提取值失败

问题描述

我基本上是在尝试使用正则表达式从 API 收集数据,但是我的代码正在返回一个null值?

我正在使用的正则表达式字符串是这样的:

let matches;

await emails.data.forEach(obj => {
    console.log(obj.mail_text_only); // <div>Be sure to <a href="https://www.website.com/unlock/verifyemail.html?requestId=%2F5xHTj30QFhcXmoyOHSlXA%3D%3D&validationId=bk72uGeIEk6KWOGNE8xF%2Fs4roEANsL0Y5pgVorJIjAI%3D&bitmap=POSTPAID">confirm</a> your unlock request within 24 hours or it'll be canceled.</div>
    matches = obj.mail_text_only.match(/requestId=(.*)&validationId=(.*)&bitmap=(.*)"/g);
});

console.log(matches); //null

我的字符串格式如下:

<div>Be sure to <a href="https://www.website.com/unlock/verifyemail.html?requestId=%2F5xHTj30QFhcXmoyOHSlXA%3D%3D&validationId=bk72uGeIEk6KWOGNE8xF%2Fs4roEANsL0Y5pgVorJIjAI%3D&bitmap=POSTPAID">confirm</a> your unlock request within 24 hours or it'll be canceled.</div>

当我运行console.log(matches)它会抛出一个null结果?

标签: javascriptregex

解决方案


有用。正则表达式没有引号。

let str = "https://www.website.com/unlock/verifyemail.html?requestId=%2F5xHTj30QFhcXmoyOHSlXA%3D%3D&validationId=bk72uGeIEk6KWOGNE8xF%2Fs4roEANsL0Y5pgVorJIjAI%3D&bitmap=POSTPAID"

let matches = str.match(/requestId=(.*)&validationId=(.*)&bitmap=(.*)/g);


console.log(matches);


推荐阅读