匹配链接中的页码

时间:2019-01-03 04:27:05

标签: javascript match

我一直试图匹配页码,但是我得到的只是不确定的。我在做什么错了?

var currentLink = "page_number=1";
var whatPage = currentLink.match(/page_number=([1-9])/g);
console.log(whatPage[1]);

3 个答案:

答案 0 :(得分:1)

问题是您使用的是/g标志,该标志将返回与字符串中的该正则表达式匹配的 all 数组(忽略捕获组-它们不是在输出中以/g可见)-例如,如果输入为page_number=1,page_number=2,则会得到page_number=2

var currentLink = "page_number=1,page_number=2";
var whatPage = currentLink.match(/page_number=([1-9])/g);
console.log(whatPage[1]);

要使用唯一匹配项的捕获组,只需删除全局标志:

var currentLink = "page_number=1";
var whatPage = currentLink.match(/page_number=([1-9])/);
console.log(whatPage[1]);

答案 1 :(得分:0)

正则表达式可能在这里过分杀伤。为什么不这样使用split()

var whatPage = currentLink.split('=')[1];

但是,如果需要使用正则表达式,则可以利用:

var whatPage =  currentLink.match(/page_number=([1-9]+)/);
console.log(whatPage[1]);

请注意,如果您的页码并非严格位于1-9的范围内,我会添加+符号。

答案 2 :(得分:0)

尝试这种方式

var currentLink = "page_number=1";
var whatPage = currentLink.match(/[1-9]+/);  
 console.log(whatPage[0]);