Javascript match(),regex
我需要在包含以下符号的html文档中搜索第一个出现的字符串:“收件箱(15)”。我编写了以下返回null的表达式:Javascript match(),regex,javascript,regex,Javascript,Regex,我需要在包含以下符号的html文档中搜索第一个出现的字符串:“收件箱(15)”。我编写了以下返回null的表达式: var openTickets = document.body.innerHTML.match(/Inbox\s\((d+)\)/); 我只需要这个数字(在上面的例子中,它是15)来进行进一步的操作,这就是为什么我把它放在括号之间;我还转义了“(”符号(应该有I?),因为它也存在于字符串中 有人能帮我找到正则表达式吗?谢谢。你只是缺少了数字的转义序列。如果你有d+,你就需要\d+
var openTickets = document.body.innerHTML.match(/Inbox\s\((d+)\)/);
我只需要这个数字(在上面的例子中,它是15)来进行进一步的操作,这就是为什么我把它放在括号之间;我还转义了“(”符号(应该有I?),因为它也存在于字符串中
有人能帮我找到正则表达式吗?谢谢。你只是缺少了数字的转义序列。如果你有
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]+\)/);
正如@grallen所建议的那样,你也缺少了捕获组的号码,而这个号码正是OP真正想要的