今回は、文章中にある価格に消費税を加算するスクリプトです。まず最初のスクリプトはInDesign用です。テキストフレーム内の数値(価格)だけを選択してから実行すると、105%の価格に置換されます。
●テキストフレーム内で選択した数値に消費税を加える
var selObj = app.activeDocument.selection[0]; // 最初に選択した数値のみ処理
var n = parseFloat(selObj.contents);
n = n * 1.05; // 消費税5%を乗算する
n = Math.round(n);
selObj.contents = ""+n;
次はテキストフレーム全体に対して処理するものですが、1,200円や980円など数値の直後に円の文字がある場合のみ、価格として認識し105%の価格にするものです。ただし、テキストフレームで表示されていない部分に関しては処理されません。隠れている部分も処理したい場合には
selObj.contents;
を
selObj.parentStory.contents;
としてください。また、以下のスクリプトはInDesignだけでなくIllustratorでも問題なく動作します。Illustratorの場合もInDesign同様にテキストフレーム全体を選択してから実行してください。
●〜円のパターンの場合のみ処理する
var selObj = app.activeDocument.selection[0]; // 最初に選択した数値のみ処理
var txt = selObj.contents;
selObj.contents = txt.replace(/\d+円/g, repFunc);
function repFunc(n){
n = parseInt(n);
n = n * 1.05; // 消費税5%を乗算する
n = Math.round(n);
return n+"円";
}
ちなみに¥2531のように、先頭に¥マークがついている場合には、以下のスクリ
プトになります。
●¥〜のパターンの場合のみ処理する
var selObj = app.activeDocument.selection[0]; // 最初に選択した数値のみ処理
var txt = selObj.contents;
selObj.contents = txt.replace(/¥\d+/g, repFunc);function repFunc(n){
n = parseInt(n.substring(1,9999));
n = n * 1.05; // 消費税5%を乗算する
n = Math.round(n);
return "¥"+n;
}
【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
大盤振る舞いのおかげで、数年後には消費税が大幅アップしそうですが……
mixiがOpenSocial対応(β)ということで、いくつか作ってあります。
一応OpenSocialの勉強ということでページも作りました。が、最初の段階でちょっとつまずいているので、あまり項目がありません。SNSごとに対応が違うので、昔のブラウザ戦争を思い起こさせるような雰囲気も。
・OpenSocial例文辞典
< http://www.openspc2.org/reibun/OpenSocial/
>
細々と素材も追加してます。
・フルサイズフリー素材
< http://footage2.openspc2.org/sozai/fullsize/index.html
>
以下の連載/記事もよろしく。
・アスキー:「29分でできる! あのサイトの“技”を盗め」第20回
< http://ascii.jp/elem/000/000/407/407516/
>
・マイコミ:カスタマイジングLunascape
< http://journal.mycom.co.jp/articles/2009/04/06/casutamuluna/
>
- 改訂第4版 JavaScript ポケットリファレンス
- 古籏 一浩
- 技術評論社 2006-10-18
- おすすめ平均
- JavaScriptを使ったプロジェクトのお供に是非
- JavaScript仮免者以上の方へ
- バランスの良いバイブル
- 中級者向けです。
by G-Tools , 2009/04/13