以下の関数を変更する際にあなたの助けが必要です。現在、この関数は、文字列に重複する名前があるかどうかを確認します。重複が見つかった場合は、自動的に-numberieが追加されます。123456-2。ただし、文字列にすでに数字とダッシュが含まれている場合は、発生するはずのない最後の数字がインクリメントされます。すなわち。文字列を読み取る必要がある123456-2012から123456-2013:123456-2012-2。それを修正する方法について何かアイデアはありますか?
function test() {
var filename = "123456-2012"
var x = confirm('Duplicate record found!\n\n \''+filename+'\' \n\n rename and add record to the databse as:\n\n \''+new_name(filename)+'\'')
if (x == true) {
alert("adding...")
filename = new_name(filename)
alert(filename)
}
else { return }
}
var exists = 0
function file_exists(name) {
exists = 1 - exists
return exists
}
function new_name(suggested) {
if (!file_exists(suggested)) { return suggested }
var have_index = suggested.match(/^(.+)\-(\d+)$/)
var unused_index
if (have_index && have_index[2]) {
base = have_index[1]
unused_index = ++have_index[2]
} else {
base = suggested
unused_index = 2
}
while (file_exists(base + "-" + unused_index)) { unused_index++ }
return base + "-" + unused_index
}