すごく基本的な内容ですが、たった今自分が必要だったので。 例えば、次のような5つの項目があったとします。 expensedtlname_1,expensedtlcount_1,expensedtlunitmoney_1,expensedtlmoney_1,expensedtlremarks_1 これらは枝番が _1 となっていますが、これを 1 〜 10 まで一気に作りたいという場面に出くわしまし...
すごく基本的な内容ですが、たった今自分が必要だったので。
例えば、次のような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 のスニペットフィールドというすごく便利なカスタムフィールドを使っているところで役に立ちました。