我一直试图匹配页码,但是我得到的只是不确定的。我在做什么错了?
var currentLink = "page_number=1";
var whatPage = currentLink.match(/page_number=([1-9])/g);
console.log(whatPage[1]);
答案 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]);