JavaScript で連番の文字列を簡単に作る

すごく基本的な内容ですが、たった今自分が必要だったので。

例えば、次のような5つの項目があったとします。

expensedtlname_1,expensedtlcount_1,expensedtlunitmoney_1,expensedtlmoney_1,expensedtlremarks_1

これらは枝番が _1 となっていますが、これを 1 〜 10 まで一気に作りたいという場面に出くわしました(まあ、10個くらいなら手作業でも…)。

そんなときは、次のコードを Firebug や Chrome の JavaScript コンソールにコピペして実行すれば一瞬で終わります。

var str = 'expensedtlname_*,expensedtlcount_*,expensedtlunitmoney_*,expensedtlmoney_*,expensedtlremarks_*';
var snippet = [], from = 1, to = 10, glue = ",";
for (var n = to + 1; from < n; from ++) {
    snippet.push(str.replace(/\*/g, from));
}
console.log(snippet.join(glue));

簡単に解説

まず、変数 str に連番にしたい文字列を代入します。このとき、連番にしたい数字の部分を「*」としておきます。

次に、変数 from に開始番号を、変数 to に終了番号を入れます。このとき、JavaScript はゼロから始まって for はなんたらとか考えなくて大丈夫です。

そして、変数 glue に連結する文字列を入れます。これは、連番にした変数 str を連結するときの文字列です。改行で区切りたい場合は「\n」ですね。

これで実行すればOKです。らくだ。

今、PowerCMS のスニペットフィールドというすごく便利なカスタムフィールドを使っているところで役に立ちました。

  • このエントリーをはてなブックマークに追加
Just a second...