Koonzの毎日作りかけブログ

オイラが日々作ったものを張り付けたりするブログです。blenderでの3DCGやjavascript,phpなんかでイロイロ作っています。

  • ALL
  • RSS
  • ブロとも
  • ログイン

開発日記 005 仕分けプログラム(2位ジャダメナンデスカ ・。・!

だいたい大まかなところが見えてきたので・・・
開発日記004の正規表現を改造して、次のようなプログラムを作りたいと思います。

配列A=引数の文字列.match(/('<'(xの場合)'>'|#(xの場合)|.(xの場合)|(xの場合)/);
if( 配列A&&(配列A[1]||配列A[2]) ){
 if(配列A[1]){
  配列B=document.createElement(配列A[1]);
 }else{
  配列B=document.getElementById(配列A[2]);
 };
}else{
 if(配列[3]){
  配列B=document.getElementByClassName(配列A[3]);
 }else{
  配列B=document.getElementsByTagName(配列A[4]);
 };
};
それぞれの場合にif文を4つ用意しなかったのは、elseに入れておけばifに当てはまらないときに自動で実行されるので、ひょっとしてif4つよりも動作が軽快なんじゃなかろうか?と思ったからです。(実際のところはどうなんでしょ??
これで、メソッドチェーンの次の要素が配列Bを参照すればうまく実行されるハズ?です。
描きながら思ったんですが、これ書いている暇があればプログラム作れますよね・・・ -。-
Category: プログラム
0コメント 0トラックバック
2012/11/29(Thu)

開発日記 004 正規表現について

うむぅ・・・正規表現ですよ・。・
今までは、引数で与えられた文字列に対して'test'を使ってif文と'replace'を使って文字列を操作していたのだけど、'match'を使えば適合した文字列そのものを返してくれるので処理が省略できそうです。

まず、先頭文字が#で1つ以上の文字列。
/^#\w+/
これで'#~'の文字列に反応します。次にクラスを意味する.に反応するように追加。
/^#\w+|^\.\w+/
更に、'# .'が無い文字列に反応するように付け加えて・・・
/^#\w+|^\.\w+|^\w+/
一通り完成しました、これを使って'#div1'をmatchを使って確認してみます・・・'#div1'が帰ってきます。当たり前ですね。ここで'()'を使ってグループ化を綺麗にしましょう。
/^(#\w+|\.\w+|\w+)/
'^'をカッコの外に出してまとめました。すると、処理結果が'#div1,#div1'に・。・!
何とグループ化を行うと戻り値が配列になるようです、しかし二つもあっても無駄なので配列に格納しなくてよいと指示を出します。
/^(?:#\w+|\.\w+|\w+)/
これで戻り値が#div1一個に戻りました。さらに括弧を追加して
/^(?:#(\w+)|\.(\w+)|(\w+))/
こうすると戻り値が'#div1,div1,,'になりました。
これは最初の#div1がマッチした文字列を意味していて、二個目のdiv1はマッチした部分を意味しています。以降の,,は括弧内がマッチしなかったのでカラッポという事です。
つまり0,1番に文字が入っていればID
0,2番に文字が入っていればクラス
0,3番に文字が入っていればタグ名を意味している事になります。
そして、どの場合も配列に#や.を除いた文字列が含まれているので個別にreplaceを使って消す必要がなくなりました。
Category: プログラム
0コメント 0トラックバック
2012/11/26(Mon)

開発日記 003

今回掲載するのは'開発日記001'で掲載したプログラムに002の案を足した改良版のソースです。
プログラムの中身は引数で渡した文字列が、どういった種類のものなのかを判別するプログラムです。(idなのかクラスなのか、それとも新しくタグを作るのか?など)
jQueryの中身を少しのぞいたせいか、パクリ臭がカナリきつくなりました -_-
でもまぁ、仕方ないですよネ!私なんてこんなもんです。これを成長というのでしょう? -_-

今までは文字列を見分けるのにtestを使っていたんですが、charAt(~)というのを使うと、指定した文字数目に何という文字がある・・・などの指定ができるようです。
それから、一番変化があったのは、今までプロトタイプ内のプログラムの戻り値にはプロトタイプ自身を書いていたのですが、赤字の部分を書き加えることによって、プロトタイプ内の関数の戻り値がthisで自身を呼び出した場合、koonz.seを呼び出すようになるため戻り値をriturn thisで統一してもメソッドチェーンが有効になりました。

パクるんなら最初からjQuery使えよーとも思いましたが、なんでそうなるのかを試行錯誤しながら作っていくと勉強になって楽しいですネ、パズルゲームみたい ・。・ノ

( function( window ){
var document = window.document,
koonz = function( select, action ){
return new koonz.se.typ_selecter( select, action );
};
koonz.se = koonz.prototype = {
typ_selecter : function( select, action ){
//引数の種類がstringだった場合
if( typeof select == 'string' ){
//新しいHTMLエレメントを入力した場合
if( select.charAt( 0 ) == '<' && select.charAt( select.length-1 ) == '>' ){
alert('新しくエレメントを作成します。');
return this;
};
//HTMLのID名を入力した場合
if( select.charAt( 0 ) == '#' && select.length >= 2 ){
alert( 'ID :' + select.replace( /^(\.|#)/,'' ) + 'を取得します' );
return this;
};
//HTMLのclass名を入力した場合
if( select.charAt( 0 ) == '.' && select.length >= 2 ){
alert( 'class :' + select.replace( /^(\.|#)/,'' ) + 'を取得します' );
return this;
};
//id,classの指定がないタグそのもを指定した場合
/*if( selectに<,.,#などが使われていない場合 ){
alert( 'HTMLtag :' + select.replace( /^(\.|#)/,'' ) + 'を取得します' );
return this;
};*/
};
if( !select ){
alert('セレクタが設定されていません。っと・。・');
return this;
};
},
setload : function( se ){
window.onload = function( ){
se( );
};
},
};
koonz.se.typ_selecter.prototype = koonz.se;
window.koonz = koonz;
return this;
} )( window );
koonz( document ).setload(
function main(){
koonz('.div1');
}
);
Category: プログラム
0コメント 0トラックバック
2012/11/20(Tue)

時たま出現バトンコーナー

○○狩りバトン

Q1 ○○狩り、最初に思いつくのは?
A1 人間狩りジャー ・。・ノ
Q2 今まで一番美味しかった○○狩り教えて!
A2 潮干狩りジャー ・。・ノ
Q3 今一番行きたい○○狩りって何?
A3 シカ狩りジャー ・。・ノ
Q4 今年は○○狩りの予定はある?
A4 丸ガリの予定はないのジャー -。-ノ
Q5 こんなのあったら良いなあ、と思う○○狩りってある?
A5 ガリガリ狩り )~;~(

このバトンに回答する / 回答した人を見る

Category: 日記 バトン
0コメント 0トラックバック
2012/11/19(Mon)

開発日記002~いい加減jQueryつかえよ -。-っ

ようやく引数で渡すものが見えてきました・・・
多分、一番よくつかわれる引数が文字列の場合、渡される文字は4種類+α。
①新しく、HTMLのエレメントを作る場合のタグ名。
②ID名
③クラス名
④HTMLのタグ名
これら4つと引数が空の場合と引数の意味が分からない場合かなぁ

if( aaa == 'string' ){
if( 先頭文字が<かつ、最後が>かつ、3字以上 ){
aaaから余分な文字を消す;
document.createElement( aaa );
};
if( 先頭文字が#かつ、2字以上 ){
aaaから余分な文字を消す;
document.getElementById( aaa );
};
if( 先頭文字が.かつ、2字以上 ){
aaaから余分な文字を消す;
document.getElementByClassName( aaa );
*配列になる可能性がある
};
if( htmlのタグ名の場合 ){
aaaから余分な文字を消す;
document.getElementsByTagName( aaa );
*配列になる可能性がある
};
if( 引数がない場合 ){
alert(ヒキスウ、ナイジャン);
};
if( 上記の物以外 ){
alert(ナンジャ、コリャ);
*else文で対処すべきカ?
};
};


'引数から余分な文字を消す'が頻発しているのでこの部分は改善の余地がありそうです。
else文も無いのでその部分も増加しそうです。
また、create~やgetElement~を実行した結果を格納することになると思うけど、これを格納する配列の番号を変えて種類を見分けるようにするのか、それとも0番に結果を格納して1番に種類を見分ける番号を格納するのか・・・とか、考える事は結構多そうです。
それに、処理結果が複数になる場合は、受け手の処理にも引数が配列なのか、単発なのかを見る挙動を与えないと・・・ ムズカシイデス-_-
Category: プログラム
0コメント 0トラックバック
2012/11/19(Mon)
  • 前のページ
  • Top
  • 次のページ
プロフィール

koonz

Author:koonz
最近はひたすらBlenderで作ったキャラクタの画像を掲載しています。
公開中のテンプレートの感想や、ご意見がございましたら、どしどしコメントに残してください m(_ _)m

最新記事
  • 今日の映画。 (03/05)
  • その想定はなかった。 (03/04)
  • コロナについて思ったこと。 (03/03)
  • 40分キャンプ飯 (03/01)
  • 寒くて日焼け。 (02/28)
最新コメント
  • koonz:40分キャンプ飯 (03/02)
  • 咲希:40分キャンプ飯 (03/01)
  • koonz:敗北。 (02/28)
  • 声なき声:敗北。 (02/28)
  • koonz:圧力鍋 VS スジ肉 (02/26)
  • 咲希:圧力鍋 VS スジ肉 (02/25)
  • koonz:これが圧力鍋の威力か… (02/19)
  • 咲希:これが圧力鍋の威力か… (02/18)
最新トラックバック
  • Koonzの毎日作りかけブログ:テンプレート開発日記 in Koonzの毎日作りかけブログ (07/07)
月別アーカイブ
  • 2021/03 (4)
  • 2021/02 (22)
  • 2021/01 (23)
  • 2020/12 (24)
  • 2020/11 (25)
  • 2020/10 (23)
  • 2020/09 (24)
  • 2020/08 (20)
  • 2020/07 (22)
  • 2020/06 (21)
  • 2020/05 (23)
  • 2020/04 (21)
  • 2020/03 (23)
  • 2020/02 (19)
  • 2020/01 (22)
  • 2019/12 (23)
  • 2019/11 (21)
  • 2019/10 (21)
  • 2019/09 (21)
  • 2019/08 (21)
  • 2019/07 (23)
  • 2019/06 (20)
  • 2019/05 (20)
  • 2019/04 (15)
  • 2019/03 (16)
  • 2019/02 (15)
  • 2019/01 (20)
  • 2018/12 (16)
  • 2018/11 (19)
  • 2018/10 (21)
  • 2018/09 (23)
  • 2018/08 (21)
  • 2018/07 (20)
  • 2018/06 (21)
  • 2018/05 (21)
  • 2018/04 (22)
  • 2018/03 (22)
  • 2018/02 (21)
  • 2018/01 (25)
  • 2017/12 (24)
  • 2017/11 (22)
  • 2017/10 (24)
  • 2017/09 (26)
  • 2017/08 (24)
  • 2017/07 (23)
  • 2017/06 (22)
  • 2017/05 (21)
  • 2017/04 (21)
  • 2017/03 (23)
  • 2017/02 (20)
  • 2017/01 (24)
  • 2016/12 (25)
  • 2016/11 (23)
  • 2016/10 (24)
  • 2016/09 (24)
  • 2016/08 (27)
  • 2016/07 (25)
  • 2016/06 (26)
  • 2016/05 (25)
  • 2016/04 (22)
  • 2016/03 (26)
  • 2016/02 (26)
  • 2016/01 (26)
  • 2015/12 (21)
  • 2015/11 (24)
  • 2015/10 (24)
  • 2015/09 (23)
  • 2015/08 (22)
  • 2015/07 (24)
  • 2015/06 (25)
  • 2015/05 (24)
  • 2015/04 (22)
  • 2015/03 (26)
  • 2015/02 (22)
  • 2015/01 (26)
  • 2014/12 (24)
  • 2014/11 (21)
  • 2014/10 (28)
  • 2014/09 (22)
  • 2014/08 (23)
  • 2014/07 (23)
  • 2014/06 (25)
  • 2014/05 (22)
  • 2014/04 (21)
  • 2014/03 (20)
  • 2014/02 (21)
  • 2014/01 (22)
  • 2013/12 (20)
  • 2013/11 (21)
  • 2013/10 (22)
  • 2013/09 (19)
  • 2013/08 (18)
  • 2013/07 (18)
  • 2013/06 (11)
  • 2013/05 (13)
  • 2013/04 (18)
  • 2013/03 (11)
  • 2013/02 (11)
  • 2013/01 (15)
  • 2012/12 (15)
  • 2012/11 (12)
  • 2012/10 (20)
  • 2012/09 (11)
  • 2012/07 (1)
  • 2012/06 (1)
  • 2011/07 (2)
  • 2011/06 (5)
  • 2011/05 (1)
カウンタ
RSSリンクの表示
  • 最近記事のRSS
  • 最新コメントのRSS
  • 最新トラックバックのRSS
リンク
  • 思いつくままに、すらすらと。
  • はっしーのデジタルワーク
  • どっか行ったりなんか食べたりの記録
  • 『上毛かるた写真館』補足ブログ
  • //遠くで汽笛を聞きながら・・・
  • ghost mail
  • つばの絵本
  • なんでも DIY Diary
  • ビーチサイドの人魚姫
  • ちょっと昔のminiフィギュア
  • 芸能エンタメ タレント最新ニュース&ランキング
  • 朝からわんこ
  • web日記
  • 極小ヨーキーの子犬がやってきた!
  • 子育てパパ
  • 野鳥との語らい
  • 咲希のひとり言
  • 『一鳥一会』
  • ハナアノレキ
  •  ドンバの徒然日記
  • 俺は楽をしたい
  • 管理画面
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
ユーザータグ

Blender 日記 開発 JavaScript HTML ナビ プログラム スライダ 使い方 3D FC2 写真 MMD チュートリアル タグ 艦これ PHP キャラクタ デザイン 修理 コントローラ テンプレート ルパン三世 Buffalo 

Copyright (C) copyrights koonz All Rights Reserved.
Designed by koonz