2010-03-22 370 views

回答

13

也許這

next = (parseInt(number, 10) + 101).toString().substr(1) 

做出mockup_02.htm出mockup_01試試這個

newName = fileName.replace(/\d+(?=\.)/, function(n) { 
    return (parseInt(n, 10) + Math.pow(10, n.length) + 1).toString().substr(1) 
}); 

這適用於任何長度,例如數mockup_0001,mockup_000001等

+0

+1記住,否則,它將解析以0開頭的八進制數(「031」將變爲25)。 – 2010-03-22 21:33:29

+0

輝煌!謝謝! – 2010-03-22 21:36:01

+0

想知道如果你知道它如何工作,如果我想包括整個字符串...就像 mockup_01.htm到mockup02.htm – 2010-03-22 21:38:12

1

我不是一個JavaScript程序員,但它似乎像混合了演示文稿和內部表示法。如果「01」是一個帶有相應整數變量的字符串,則可以從字符串轉換爲整數,然後添加1,然後創建一個具有所需格式的新字符串。這有時被稱爲模型 - 視圖 - 控制器模式。模型是整數變量 - 它模擬數字的內部行爲。視圖是字符串 - 它以可讀的方式呈現數字。控制器處理數字操作。

+1

沒有冒犯,但MVC並不適合所有的事情。我認爲你是在架構這個問題。 – chakrit 2010-03-22 21:37:01

+0

@chakrit - 你說得對。我的意思是MVC只是一個思考的模型,並不是實際連接處理程序和每個小變量的回調。但是stereofrog的(非常好的)答案在一行中處理表示 - >數據 - >表示的變化。意識到所有這些變化對解決問題是必要的,對嗎? – mtrw 2010-03-22 21:59:13

2
function next_id(input) { 
    var output = parseInt(input, 10)+1; // parse and increment 
    output += ""; // convert to string 
    while (output.length<2) output = "0"+output; // prepend leading zeros 
    return output; 
} 

var id = "00"; 
for (var i=0; i<20; i++) { 
    console.log(id); 
    id = next_id(id); 
} 
+0

+1 - 通過獲得'var desiredLength =(''+ input).length'然後執行'while(output.length gnarf 2010-03-22 21:35:46

相關問題