2012年12月24日月曜日

[jQuery plugin].texts() リリース(してます。:過去形)

そーや結構前からjsdo.itで公開していますjQuery pluginについてでも記事を書こうかと思います。

そのpluginの名は.texts()です。そのpluginは下記の機能を持ちます。

  • 要素群より文字のみ抽出し、且つ指定の正規表現により1文字に分け、任意のタグで囲った物を取得する

このpluginの利点は下記にあります。

  • 要素ではなく、テキストノードのみ抽出して操作することによりタグの書き換えが発生せず、イベントが消失しないこと。

ダウンロードはこちら

この要素は名の通り、任意の要素群からテキストノードのみ取得し、1文字ずつに分け、取得することが出来るという物です。

文字解析の正規表現が/([\uD800-\uDBFF][\uDC00-\uDFFF]|[^\B\t\s ])/gになっているのは[\uD800-\uDBFF][\uDC00-\uDFFF]でサロゲートペア文字を切り出し、且つ、[^\B\t\s ]で、特定文字種以外の文字を1文字単位で切り出しています。

関数としての動作については下記の様になります。

$(selecter).texts(options);

要素群よりテキストノードを取得する。

options.class

一時クラス名

(オプション 初期値: "char"

options.tagName

生成タグ名

(オプション 初期値: "span"

options.reg

正規表現オブジェクト

(オプション 初期値: /([\uD800-\uDBFF][\uDC00-\uDFFF]|[^\B\t\s ])/g

以上。

追伸:

サンプルなら、うちのcodeを見るとそこたら中で使っていますが、単に jQuery objectで.texts()するだけです。