簡體   English   中英

正則表達式兩位數

[英]Regex for two digit number

如果我做:

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-9]+

表示1個或多個數字;

\d\d

表示正好2位數字,也適用於其他基數(例如十六進制)的數字;

[1-9][0-9]

表示10到99之間的任何數字。

[1-9][0-9]?

表示1到99之間的任何數字。

最佳選擇取決於您是否還需要支持三位數,以及是否需要支持第0頁。如果需要三位數,則可以采用Avinash的解決方案。 如果只需要兩位數的數字,請選擇[1-9] [0-9]。 如果您想同時使用一位和兩位數,請選擇我的第四個解決方案。

您的代碼是

nextLink = nextLink.replace(/paged=[0-9]+/, 'paged='+ pageNum);

您未能加上+ ,這意味着一次或多次,使其與字符串paged=后面的一個或多個數字匹配。 還要刪除? 匹配最短的量詞。

DEMO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM