7月 30

日付・時刻の整合性をチェックしたい

とあるサイトにて、日付・時刻の値をチェックする処理が必要となる。日付・時刻の入力には、先のエントリーの実務で使える・使ったjQueryプラグイン5選にも書いた、DatePickerとClockPickを使っている。

これらのインターフェースを用いて値を入力する場合、必ず正しい日付が入るので、極端なところ、値の整合性をチェックする必要はない。しかし、このインターフェースと同時に、手動による入力を認めている場合、入力ミス等でおかしな値を入力される場合がある。たとえば…

  • 2009,7,30 → 全角文字
  • 2009–10-23 → ハイフンが多い
  • 2009-2-29 → 閏年じゃないから29日は無い
  • 10/2 → 西暦が足りない
  • 2009-13-1 → 13月は無い

などなど。

そこでまず、既存のプラグイン等で、日付の整合性をチェックするものが無いか探したのだが・・日付単体でチェックするものを見つけることができなかった。そこで…

>>>>>続きを読む

Popularity: 28% [?]

written by ANN

7月 29

phpにはstrip_tagsという、タグを取り除く関数があるが、特定のタグに挟まれた部分をごっそり削除したい場合、これは該当しない。PEARを探してみたけど、それっぽいのを発見できず。しょうがないので正規表現で書いてみる。(むしろ備忘録)

具体的にどういう時に使うかというと、PHPからの出力時に、

  • <style>~</style>タグの中身を全部削除したい
  • <script>~</script>タグの中身を全部削除したい
  • コメント用の独自タグを、出力時にタグの中身もろとも削除したい。

などなど。テンプレートHTMLの編集時には必要だけど、最終的な出力時にはいらないタグとか。
また、RSSなど、出力先によっては、本文中に含まれるscriptタグが不要な場合などに。

>>>>>続きを読む

Popularity: 19% [?]

written by ANN

7月 28

最近のとある案件で実際に使ってみたjQueryプラグインを5つ紹介します。
それぞれに主観で「実用性」「楽しさ」「難易度」を評点(5点満点)してみたので、参考までにドウゾ。

それぞれにサンプルを付けています。
サンプルのソースを見たい方は、該当部分のiframeからソースを見てください。

>>>>>続きを読む

Popularity: 37% [?]

written by ANN

7月 19

NicEdit – WYSIWYG Content Editor, Inline Rich Text Application

nicEditという、軽量でシンプルなWYSIWYGなJavaScriptのエディタがあるのだが、使っていると謎のエラーに出くわす。

普通に組み込み、ツールーバー内の「右寄せ・左寄せ・中央揃え」など、揃え機能を使おうとすると、Firefoxのコンソールに以下のようなエラーが。

[Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMNSHTMLDocument.execCommand]” nsresult: “0×80004005 (NS_ERROR_FAILURE)” location: “JS frame :: http://js.nicedit.com/nicEdit-latest.js :: anonymous :: line 38″ data: no]
[Break on this error]
var nicEditorInstance=bkClass.extend({is…A){document.execCommand(B,false,A)}});\r\n

ぱっと見、JavaScriptのシンタックスやオブジェクトのエラーではなく、firefoxの内部エラーという感じ。

なんと、公式サイトのdemoページでも、同じエラーが発症…。それでいいのか?

nicEdit公式サイトのフォーラムや、Googleで調べた限り、FirefoxのWYSIWIG APIのバグっぽい。
しかも、エラーが発生するのは、Firefox + nicEditの組み合わせかつ、【テキストエリアの1行目に左右中央揃えを実行】という変な条件。

まぁ、バグならバグでしょうがないとして、どういう条件で発生するのか、またどうすれば回避すればいいのかを調べてみた。

極力シンプルなコードにして、エラーが発生する条件を絞り込む。結果、発生する条件だけはなのとか絞り込めた。
…が、これでは、正直、実用に耐えない。

以下、検証コード。(直リンク)

検証を進めていくうちに分かったのだが、nicEdit + Firefox + 1行目の左右揃えで、必ずエラーになるとは限らなかった。
問題がでるのは、2番目のテキストエリアのみ。その違いというのは、テキストエリアを、divでくくっているかどうか、という点のみである。
div以外に、pやtableなど、要するにtextareaの外に要素がある場合、1行目の文字に対し左右揃えを行うとFirefoxのWYSIWYG APIがエラーになるという感じ。

とりあえず現在はここまで調べた。このエラーをどうやれば回避出来るのかは現在調査中。
わかり次第また投稿する。

Popularity: 8% [?]

written by ANN