如果我这样做:
var pageNum= 2;
nextLink = http://mydomain.com/?paged=1
nextLink = nextLink.replace(/\/?paged=[0-9]?/, 'paged='+ pageNum);
我得到了
nextLink = 'http://mydomain.com/?paged=2';
但是,如果我去:
var pageNum= 12;
nextLink = http://mydomain.com/?paged=10
nextLink = nextLink.replace(/\/?paged=[0-9]?/, 'paged='+ pageNum);
我得到了
netLink = 'http://mydomain.com/?paged=120';
我想要的时候:
nextLink = 'http://mydomain.com/?paged=12';
那么,我如何使用两位数字(11,12,13,14等)并将其替换为pageNum变量(可以是一位和两位数字)。
感谢'!小号
答案 0 :(得分:4)
有两种方法可以为2位数字编写正则表达式检查,每种方法都有自己的目标:
[0-9]+
表示1位或更多位数字;
\d\d
正好表示2位数,也适用于另一个基数的数字(如Hex);
[1-9][0-9]
表示10到99之间的任何数字。
[1-9][0-9]?
表示1到99之间的任何数字。
最佳选择取决于您是否还需要支持三位数字,如果您需要支持页面0.如果您需要三位数,您可以使用Avinash的解决方案。如果你只想要那些有两位数的人,请选择[1-9] [0-9]。如果你想要单个和两个数字,请使用我的第四个解决方案。
答案 1 :(得分:2)
您的代码将是,
nextLink = nextLink.replace(/paged=[0-9]+/, 'paged='+ pageNum);
您未能将+
,符号表示一次或多次,以便匹配字符串paged=
后面的一个或多个数字。并且还删除进行最短匹配的?
量词。