我对正则表达式不是特别坚强。基本上,我有以下字符串:
Showing 1-20 of 748 results.
我想提取
"748"
,将其转换为数字,并将其用于比较。正如预期的那样,预计"Showing"
,"of"
和"results"
不会更改,但是数字可能会更改。我有几个解决方案。首先是使用lookbehinds,但我不相信JS支持它们。第二个是做一个更直截了当的方法,也许使用match()
查找字符串中的所有数字,然后将元素放在返回数组的第三个索引(应为"748"
)中。关于最佳方法的任何想法?
最佳答案
我会使用正则表达式:
Showing \d+-\d+ of (\d+) results\.
其中
\d+
分别表示匹配1个或多个数字。您要查找的数字周围的括号称为捕获组。因此,如果搜索字符串在
str
中,则生成的JavaScript可能类似于:var resultsRe = /Showing \d+-\d+ of (\d+) results\./;
var numResults = resultsRe.exec(str);
console.log("There are " + numResults + " results.");