在两个斜杠之间匹配1,2或3位数字

时间:2016-01-06 23:31:52

标签: javascript regex

我正在阅读包含年份和分页页面的网址字符串。它们分为两种:

/news/2016/2/news/2/2016

较小的数字是分页编号,它不应该大于3位数。 4位数字是年份。

我能够匹配年份:/\d{4}/和分页3位数限制,但是我无法强制启动正斜杠。我试过这两个解决方案:

[1-9]?\d(?=\/|$) - 它将匹配1到3位数字,但它会忽略起始斜杠,因此年份也会匹配。

(?=\/)[1-9]?\d(?=\/|$) - 文档解释它的方式,但它不匹配任何东西......

P.S。这适用于javascript。

1 个答案:

答案 0 :(得分:2)

您可以将正则表达式与捕获组和单词边界一起使用:

\/(\d{1,3})\b

请参阅regex demo

它会在/后捕获1到3位数字。单词边界不会让匹配在4 + - 数字内。

var re = /\/(\d{1,3})\b/; 
var str = '/news/2016/2';
var res = str.match(re);
if (res) {
  document.getElementById("r").innerHTML = res[1];
}
<div id="r"/>