2015-06-04 43 views
0

我有一堆<a id="r"></a>標籤的文檔,並且想要爲每個添加遞增數字,所以,<a id="r1"></a> ... <a id="r2"></a>等。我目前的循環有,似乎沒有工作。替換方法,增加一個遞增的數字到重複的字符串

function(doc) { 
    for (var i = 1; i <= doc.length; i++) { 
     var number = 1; 
     return doc.replace(/<a id=""><\/a>/, '<a id="page' + number + '"></a>'); 
     number += 1 
};}, 

回答

0

我不認爲你想循環。嘗試在替換模式做一個全球性的正則表達式與增加的數字:

function(doc) { 
    var number = 1; 
    return doc.replace(/(<a\s+[^>]*id="r)("[^>]*>[^<]*<\/a>)/gi, function(m, a, b) { 
     return a + (number++) + b; 
    }); 
}; 

這看起來對於任何<A>標籤與id="r",保持自己的內容和屬性相同,但改變了rr1r2r#。這是你想要的嗎?

+0

是的!謝謝! – user3681459

+0

不客氣:) –

+0

因此,如果我想迭代多個.xhtml文件,是否有一種方法可以保存最終號碼並讓它在下一個文件的該號碼處重新開始? – user3681459

0

如果您return在循環內,它不會迭代多次。

0

您正在設置循環內的var number = 1;。你已經有了一個整數i,所以使用+ i +,你在循環內返回。

0

嘗試聲明number以外的循環。

function(doc) { 
    var number=1; 
    for (var i=1;i<=doc.length;i++) { 
    return doc.replace(/<a id=""><\/a>/,'<a id=\"page'+number+'\"></a>'); 
    number+=1; 
    } 
},