2

我需要在包含以下符号的 html 文档中搜索第一次出现的字符串:“收件箱 (15)”。但是,我编写了以下返回 null 的表达式:

var openTickets = document.body.innerHTML.match(/Inbox\s\((d+)\)/);

我只需要数字(在上面的示例中为 15)进行进一步操作,这就是为什么我将它放在捕获括号之间的原因;我还转义了“(”符号(应该有吗?),因为它也存在于字符串中。

任何人都可以帮我完成正则表达式的工作吗?谢谢。

4

2 回答 2

5

您只是缺少数字的转义序列。你在哪里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];

演示 - http://jsfiddle.net/rMAHC/2/

于 2013-10-02T05:26:50.930 回答
-2

使用这个:

document.body.innerHTML.match(/Inbox\s+\([0-9]+\)/);
于 2013-10-02T05:33:08.897 回答