2010年3月16日火曜日

合体スクリプトの解説と感想

replace(/[0-9]/gi, function(chr, ptr, allStr)
chrはchractor、でもptr, allStrって? 
ググりましたptrはpointer、allStrは出てこない。。。
多分allStringのことだと思います。
こういった説明が省かれてます(汗

で、最初のパラメータが正規表現文字列、2番目のパラメータに関数(function)を指定した場合、マッチした文字、文字の位置、検索対象となった全文になるようです。
giはPerlと同じならば、iは不要ですね。なんせ元のscriptは「全角英数字を半角英数字にする」でしたから。そのまま流用したアチキがバカなだけ(^^;

この function(chr, ptr, allStr) はアチコチの例文に使われています。
・テキストフレーム内の番号を1 つ増やす
・テキストフレーム内の価格に消費税を加える
・テキストフレーム内の価格のフォーマット(円←→¥)を変更する
・テキストフレーム内の日付フォーマットを変更する
・英文字だけサイズを変える(平仮名、片仮名、漢字)
・英文字だけフォントを変える(平仮名、片仮名、漢字)
・特定の文字列の両側にカッコを付ける
・2桁以上の半角数字を縦中横にする
・テキストフレーム内の金額がオーバーしているか調べる
・全角英数字が含まれているかどうか調べる
・半角英数字←→全角英数字にする
・アラビア数字←→漢数字にする
・句読点←→ピリオドとカンマにする
・3桁ごとにカンマを付ける
・レガシーテキストがあるかどうか調べる
・レガシーテキストを一括変換し保存する
・シリアル番号を付けファイルとして保存する
・住所氏名のデータを元に葉書を自動生成し保存する

などです。
for(var i=0; i<selObj.length; i++)と同じように丸暗記するしかないみたいです。

indexOf()メソッドは文字列を先頭から検索する。
charAt()メソッドは文字列から指定された文字を1文字取り出す。

あとイメージできたのは
var hankaku = "0123456789";を
var hankaku = "9012345678";にすればマイナス1の数字に置き換わるんじゃないかな。
チラシ仕事の価格一括1円引きの変換に使え、、、ない。

InDesignのJavaScriptのテキスト処理(ルビを除く)の多くはヘッダの部分をIllustrator用に書き換えれば、そのまま使えるような気がします。あとカラー関係も。
コピペ合体スクリプトを作りながらマニュアルを片手に読み解きをする予定。
にしても、、、唐突に出てきて何の解説もない式やワードに入門者はつまづくのだと思います。

0 件のコメント: