04 | 2017/05 |  06

  1. 無料サーバー

User forum-FC2BLOG-Info-Edit Template-Post-Edit-Upload-LogOut

CSSやJavascript自習の苦闘史を綴っていきたい。恐縮ですがJavascriptを有効にしてご覧ください。
2005年12月から社会問題も掲載!

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

 

jQueryに学ぶJavascriptの基礎(3) 正規表現──jQuery解読(18)

jQuery解読作業を進めるにつれ、Javascriptの基礎が如何に分かっていないか、ほぼ毎日のように痛感させられます。その意味ではjQuery解読は無謀なチャレンジであった訳ですが、それでも誤謬を犯すマイナスを埋め合わせて遙かに余りあるプラスがあることも毎日自覚されるので、恥を忍んで引き続きjQuery解読を進めるつもりでいます。

しかし、基礎の基礎が余りに分かってない自分に嫌気が指してきてしまい、匙を投げ出すような醜態は演じたくありません。そこで、自戒を込めて敢えて誤解していたこと、理解していなかったこと、不十分な理解に留まっていたことなどについて、つらつらと記述していきたい、と思います。

jQuery.js は正規表現の勉強にも最適である

正規表現文字列の奇々怪々、何がなにやらさっぱり訳が分からない記号の羅列を見れば、this の難解さなど赤子の手をひねるに等しい水準だと言えるでしょう(苦笑)。その奇々怪々な文字列が、jQuery では、様々なシーンで活用されています。

jQuery.js に登場する20箇所以上の正規表現について、ここに論じても余り意味がないでしょうが、普段余り見かけない利用方法について学習を深めることは意義深いと思います。

話題にするのは、3つ。参照対象とする部分文字列と非参照対象の部分文字列、そして非貪欲な繰り返し、です。

部分文字列

それは () で括られた一塊の文字列のことですが、塊として位置づける意味は、後でその文字列を参照したい場合、及び参照はしないが一塊の文字列として認識させたい場合とに分かれるようです。

これらの参照/非参照の部分文字列を指定しているケースについて

その端的な例は次の2例です。(左の数字はjQuery.jsにおける行数です)

 31: var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
1202: /^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,

色別で部分文字列の区別を分かりやすく表示しましたが、jQuery.js ではこれらの部分指定を活用してその部分を随意に取りだして利用しているのです。

31行の場合の部分文字列の活用内容は既に言及しましたので( インスタンスの初期化:init()──jQuery解読(5)、ここでは1202行について解読しようと思います。

1202行は jQuery.parse プロパティを定義する箇所の一部です。コード本体の説明にあるように、 Match: [@value='test'], [@foo] を探すための正規表現文字列です。なおこのparseプロパティが使用されている箇所はjQuery.filer() メソッドの 1433行1箇所だけです。

さてこの正規表現文字列は、連想配列のキー文字として @value='test' や @foo の形式の文字列を探すために一般化されて定義されたものです。

  1. ^(\[)……先頭文字が [ の意。これは部分文字列1に指定されている。
  2. @?([\w-]+) ……@があるかなくて、その後に単語文字かマイナスが1以上。この1以上の単語文字が部分文字列2に指定されている。
  3. ([!*$^~=]*)……部分文字列3。!、*、$、^、~、又は = がゼロ個以上
  4. ('?"?)……部分文字列4。' がゼロ個以上で、 " がゼロ個以上続く文字列
  5. (.*?)……非参照部分文字列。何らかの文字がゼロ個以上。なおこの ? は後述する「非貪欲な繰り返し」指定のため。
  6. \4……部分文字列4を参照する。

▲ToTop

非貪欲な繰り返しについて

これはむしろ吝嗇な繰り返しとか、貧弱な繰り返しと言った方が分かりやすいのではないかと思いますが、『Javascript 第5版』に倣って「非貪欲な」繰り返しと表現しておきます。

この用法もjQuery.jsで初めて遭遇したもので、Javascript1.5以降に実装されたそうです。繰り返し文字の最後に ? を付けると非貪欲な繰り返しになるのだそうです。例:??、+?、*? 等々。

これが登場するのは上に見た 1202 行 や 778 行で、後者は clean() インスタンスメソッドの中です。

 778:  arg = arg.replace(/(<(\w+)[^>]*?)\/>/g, function(m, all, tag){

行の中程にある [^>]*? です。これは > でない文字のゼロ個以上の非貪欲な繰り返し 、ということになります。つまり、 > ではない文字(列)を見つけた場合の最初の文字だけを意味することになります。

 

■ コメントの投稿 ■

管理者にだけ表示を許可する

●トラックバック●

■トラックバックURLはこちら■
http://hkom.blog1.fc2.com/tb.php/591-018e4b2c

●参照元一覧●

<provided Fc2>
<provided i2i>

▲ToTop

 90%近いシェアを握っているインターネットエクスプローラの描画エンジンを利用したタブbrowser。沢山のタブbrowserがあるが、多機能、カスタマイズフリー、スクリプト利用等で一日の長がある。Gekkoエンジンへの対応も行われ、IEからの自立独立の方向に向かっている。2005年7月にはIE7が登場する見通しの中で、今後の発展が望まれる。

 多様なCSS作成支援機能を備えた、タグ入力式 HTML&CSS作成支援エディタ。スキンデザインもすっきりしている。テキストエディター上で作成するよりも確実で安全にタグ打ちが出来る。
文字コードを選べないのが欠点。

 StyleNote同様のタグ入力式 HTML&CSS 作成支援エディタ。長年使用してきたが現在StyleNoteに乗り換えつつある。

 クリップボード履歴情報を活用する為のソフト。画像まで履歴を取ってくれるのが嬉しい。このソフトを使わない日は絶対ない程に重宝し、愛用している。

 起動中のウィンドウの「コピーできない」説明文などの文字列を取得し、コピー可能な文字データにするツール。何かと便利。

 ストリーミングデータを保存することが出来るソフト。動画利用には不可欠なソフトだ。

 無料ながらレイヤー機能を有し、スクリプトによる拡張も可能な、sleipnir作者が提供している優れもの画像編集ソフト。

 画面キャプチャソフトと言えばこれに勝るものなし、ではないだろうか? 様々な取得方法を有しており、ブログ作成にもHomepage作成に不可欠だ。Jtrimと並んでWoodyBellsの作品。

 複数ファイルの同時編集は出来ないが、透過pngも作れる画像編集ソフト。
(以下当該サイトから抜粋)初心者にも簡単に操作が出来るフォトレタッチソフトです。多くの加工機能で画像に様々な効果を与えることができます。非常に軽快に動作するため、ストレスなく操作できます。

 Animation Gifファイルを作れる無料ソフト。

 キャプチャソフト。画面内にサイト全体が表示しきれない場合でも、これを使えば全体をキャプチャすることが出来る。

 画像処理。画像のフォーマット変換のみならず、色数やサイズ、圧縮率の変更まで一括処理できてしまう『BatchGOO!』は、大量の画像をまとめて処理したいときに大変便利なソフト。BMP, TIFF, JPEG, PCX, PNG の相互変換をはじめ、色数・サイズ・解像度の統一、JPEG圧縮率の調節など、ホームページ用の画像や携帯電話用の壁紙を揃えるのに抜群の相性を見せる。(Vectorの当該ソフト紹介頁より抜粋引用)

 名前から直ぐに想像が付くように画像のサイズを測るためのソフトだ。Homepage作成には欠かせない。2カラム、3カラムのレイアウトを行う場合に大変重宝する。

 ランチャーソフトは沢山あるが、中でもこれが一押しだ。2年以上使ってきたがその操作性には毎日満足している。これを使い始めてからデスクトップには一切のアイコンを表示することをやめてしまった。

 AdobeReader7によって、起動時間が長すぎるという長年のユーザーの不満はある程度解消した。そのためこの高速化ソフトは存在価値が低下してしまったかもしれない。AdobeReader6迄はこのソフトによる起動高速化で恩恵を受けてきた。

 IE専用が難点だが、様々なサイト内でIDやパスワードを入力するのに重宝するソフト。コンテキストメニューから簡単に起動できるのがGood! sleipnir等のIEの描画エンジンを利用しているブラウザでも使える。

 利用しているパソコンの諸元値を取得するには、このソフトがベストだ。インストール済みソフトの一覧が取得できるのも嬉しい。

 WMPは機能が豊富なだけ重い。RealPlayerも同様だ。そこでMedia Player Classicを使いたい。動作が軽快なだけではなく、対応しているファイル形式もすこぶる多く、これひとつで、wmvもrmも表示できてしまうのだから凄い! 数多あるMedia Playerの王様と言えるだろう。

 自宅でPCを起動しているときには必ず起動しているメディアプレーヤー。何かと過剰なWinampよりも、起動も速くスキンはシンプルだ。

 DivX, Xvid, Mov, Vob, Mpeg, Mpeg4, avi, wmv, dv, などの動画をDVD-Video形式に変換できるフリーソフト。クリックするとDVD関連ソフト紹介サイト=「DVDなToolたち」なるHomepageが開きます。

----------
200712021940
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。