2010-03-22 379 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

相关问题