2012年1月28日土曜日

repFuncの謎

javascriptの写経なんぞをしてますとrepFuncなる用語に出くわします。

文章中の価格に消費税を加算する (Adobe InDesign & Illustrator CS3/CS4編)
selObj.contents = txt.replace(/\d+円/g, repFunc);
function repFunc(n){

全ページにある全角の数字を漢数字にする
result = txt.replace(/[0-9]/g, repFunc);
function repFunc(chr,ptr,allStr)

掲示板にも
正規表現置換でフォントや異体字属性が抜け落ちました
txt.replace(/[0-9A-Za-z、<><>]/g,repFunc);

JavaScriptにて表内やセル内の段落スタイル適用/正規表現置換をしたいでrepFuncが使用されてます。

このrepFuncがずっと???だったんです。結論から言いますと

hogeでもhageでもbokeでも、
もう何でもいいんです(号泣
 
注:予約語は除く


以下はここまでの道のりの記録。笑ってください。と、同時に教える立場であれば初心者がどこで躓くか参考にしてください。

ググってもよ~分からなかったので、書店に行ってjavascript用語辞典や他の言語辞典を漁りました。でもありませんでした。

再度、ググっても分かりません。が、replace()に使われていることが分かります。
全ページにある全角の数字を漢数字にする
replace()の第二パラメータには置換する文字だけでなく関数も指定することができます。関数からの戻り値が置換される文字になります。
repFuncは関数だったんです。

で、関数(Function)
関数を定義します。関数とは、よく使用する処理をサブルーチンとして定義するものです。例えば、時:分:秒を秒数に変換する関数を定義するには次のようにします。

function toSeconds(hour, min, sec) {
toSecondsを見て(んっ? ひょっとして何でもアリなんじゃねぇの?)と思い、toSecondsをbokeに変えて
function boke(hour, min, sec) {
var answer = hour * 3600 + min * 60 + sec;
return(answer);
}
alert(boke(12, 34, 56));

動きます(号泣 写経するだけではなく、いじくり回していればもっと早く気付いたんですね。

0 件のコメント:

コメントを投稿