我需要在包含以下符号的 html 文档中搜索第一次出现的字符串:“收件箱 (15)”。但是,我编写了以下返回 null 的表达式:
var openTickets = document.body.innerHTML.match(/Inbox\s\((d+)\)/);
我只需要数字(在上面的示例中为 15)进行进一步操作,这就是为什么我将它放在捕获括号之间的原因;我还转义了“(”符号(应该有吗?),因为它也存在于字符串中。
任何人都可以帮我完成正则表达式的工作吗?谢谢。
我需要在包含以下符号的 html 文档中搜索第一次出现的字符串:“收件箱 (15)”。但是,我编写了以下返回 null 的表达式:
var openTickets = document.body.innerHTML.match(/Inbox\s\((d+)\)/);
我只需要数字(在上面的示例中为 15)进行进一步操作,这就是为什么我将它放在捕获括号之间的原因;我还转义了“(”符号(应该有吗?),因为它也存在于字符串中。
任何人都可以帮我完成正则表达式的工作吗?谢谢。
您只是缺少数字的转义序列。你在哪里d+
,你想要\d+
。
除非您需要支持空格以外的空白字符(制表符、换行符等),否则我只会使用
/Inbox \((\d+)\)/
我认为这可能会更好一些,因为您可以消除 HTML 标签并只解析文本
var rx = /Inbox \((\d+)\)/;
var str = document.body.textContent || document.body.innerText;
var num = rx.test(str) && rx.exec(str)[1];
使用这个:
document.body.innerHTML.match(/Inbox\s+\([0-9]+\)/);