ウィザード・コード

jPrim(ジェイプリム) プリミティブ型を拡張するライブラリ

jPrimの概要

 jPrimJavaScriptのプリミティブ型の拡張を行うライブラリです。このライブラリは単独で動作します。

ドキュメントページ

 jPrimリファレンス(JSDoc)
 jPrimメソッド一覧
 jPrimソースコード

ダウンロードページ

 jPrim(ジェイプリム) ⇒jPrim.js(ベータ版ver 0.2 41KB)
 軽量版(7KB) ⇒jPrim.compiled.js(ベータ版ver 0.2 13KB)
 修正箇所や新機能についてはバージョン履歴をご覧ください。
 
 <旧バージョン>
 jPrim(ジェイプリム) ⇒jPrim.js(ベータ版ver 0.1 26KB)
 軽量版(7KB) ⇒jPrim.compiled.js(ベータ版ver 0.1 7KB)

設置の仕方

 ダウンロードしたJavaScriptファイルをSCRIPTタグを用いて、設置するページのHEADタグやBODY要素の終了タグ直前といった箇所に記述します。

HEADタグ内の記述例

jPrimライブラリの使い方

 jPrimは数値と文字列、ブール値を扱うライブラリです。Numberなどのラッパーオブジェクトを扱いますが、 これらのプロトタイプを拡張することはありません。始めにこれらのプリミティブ値をjPrimメソッドで初期化して、jQueryのように オブジェクトとして扱います。簡単な例を見ていきましょう。

jPrimメソッドによる初期化

 jPrimメソッドで初期化されたデータは、NumberStringBooleanの いずれかのラッパーオブジェクトで初期化されます。つまり、変数num1は値であると同時にオブジェクトでもあります。

確実にプリミティブ値として取り出したいときはgetValueメソッドを使用します

 jPrimオブジェクトのメソッドで返されるのは常にオブジェクトなので、jQueryのようにメソッドにメソッドをつなぐことができます。 たとえば、足し算を行うaddメソッドやmultiplyメソッドを次のようにチェーンさせることができます。

メソッドチェーンの例

 ただし、jPrimオブジェクトのメソッドチェーンを止めてしまうと、jPrimオブジェクトの値は元の初期値に戻ってしまいます。 上の二つのコードを見ても、変数num1のオブジェクト値は変わらず、いずれも初期値の100からメソッドチェーンが始まっています。一方で途中の計算結果を別の変数にキャッシュすることで、 計算結果を保存することができます。

メソッドチェーンの例

なお、この変数num2は最後の計算結果を別に保存していて、refreshメソッドで最新の計算結果(オブジェクト)を得ることができます。

 文字列とブール値についても使い方は同じです。jPrimメソッドに渡した値のデータ型に合わせて、異なるデータ型のjPrimオブジェクトが作られます。 そのため、文字列のオブジェクトを作ると、addメソッドなど数値オブジェクト専用のメソッドは使えなくなります。jPrimオブジェクトで使えるメソッドは、 すべてのデータ型で使える共通メソッドと、あるデータ型だけで使えるメソッドに分かれています。

次に文字列でjPrimオブジェクトを初期化してみます

 jPrimは数値型のメソッドを始め豊富なメソッドを揃えています。ここで取り上げていないメソッドについては、次の項で詳細を解説しているので参考にしてください。

メソッド詳細

共通メソッド
getValue…………jPrimオブジェクトの最新の計算結果を取得する
refresh…………最新のjPrimオブジェクトを取得する
changeType…………データ型を変更する
 
数値型メソッド
setValue…………jPrimオブジェクトの値を設定する
limit…………数値を指定した範囲内に収める
add…………数値を加算する
subtract…………数値を減算する
multiply…………数値を乗算する
divideBy…………数値を除算する
mod…………剰余を求める
pow…………べき乗数を求める
root…………累乗根を求める
sqrt…………平方根を求める
round…………数値を四捨五入する
math…………Mathオブジェクトを使用して計算する
isPrimeNumber…………素数判定を行う
nextPrimeNumber…………現在値より大きい最初の素数を探す
fibonacci…………フィボナッチ数列の第n項目を計算する
progression…………数列の第n項目を計算する
summation…………数列の第n項までの和を計算する
accumulator…………オブジェクト値(数値)の回数分だけループ処理して結果を加算する
loop…………オブジェクト値(数値)の回数分だけループ処理する
timer…………オブジェクト値(数値)の回数分だけ一定間隔で処理を行う
counter…………オブジェクト値(数値)の回数分だけイテレータ処理をする
format…………オブジェクト値(数値)をコンマで区切って文字列として返す
 
文字列型メソッド
setValue…………jPrimオブジェクトの値を設定する
trim…………文字列の前後の空白を削除する
contains…………テキストに特定の文字列が含まれているかチェックする
extract…………テキストをフィルターにかけて文字列を抽出する
remove…………テキストに含まれる特定の文字列(パターン)をすべて削除する
camelize…………文字列をキャメルケース(大文字と小文字の表記)に変換する
hyphenate…………文字列をハイフン(-)でつなげる表記に変換する
underscore…………文字列をアンダースコア(_)でつなげる表記に変換する
replaceAll…………テキスト内の特定の文字列すべてを別の文字列で置き換える
censor…………テキスト内の特定の文字列を特殊な文字で置き換える
convertCase…………テキスト内の文字列を全角半角・ひらカタ英数字など指定した文字に変換する
enumerate…………正規表現を使用してマッチした回数分だけイテレータ処理をする
 
ブール型メソッド
setValue…………jPrimオブジェクトの値を設定する
toggle…………真偽値を逆に変換する
execute…………真偽値がtrueならコールバック関数を呼び出す

共通メソッド

getValue
機能 jPrimオブジェクトの最新の計算結果を取得する。
パラメーター 引数なし
戻り値 対応するプリミティブ値
コード記述例
refresh
機能 最新のjPrimオブジェクトを取得する。
パラメーター 引数なし
戻り値 jPrimオブジェクト
コード記述例
changeType
機能 データ型を変更する。
パラメーター 次の3種類"number"、"string"、"boolean"から選択
戻り値 jPrimオブジェクト
コード記述例

数値型メソッド

setValue
機能 jPrimオブジェクトの値を設定する。
パラメーター 設定する数値(必須)
戻り値 jPrimオブジェクト
コード記述例
limit
機能 数値を指定した範囲内に収める。
パラメーター 1、下限の数値(必須)
2、上限の数値(必須)
戻り値 jPrimオブジェクト
コード記述例
add
機能 指定した数値を足し合わせる。
パラメーター 加算する数値(必須)
戻り値 jPrimオブジェクト
コード記述例
subtract
機能 指定した数値を差し引く。addメソッドに負数を指定するのと同じ。
パラメーター 減算する数値(必須)
戻り値 jPrimオブジェクト
コード記述例
multiply
機能 指定した数値を掛け合わせる。
パラメーター 乗算する数値(必須)
戻り値 jPrimオブジェクト
コード記述例
divideBy
機能 指定した数値で割る。multiplyメソッドに逆数を指定するのと同じ。
パラメーター 除算する数値(必須)
戻り値 jPrimオブジェクト
コード記述例
mod
機能 指定した数値で剰余を求める。
パラメーター 除算する数値(必須)
戻り値 jPrimオブジェクト
コード記述例
pow
機能 指定した数値のべき乗数を求める。
パラメーター べき乗する数値(必須)
戻り値 jPrimオブジェクト
コード記述例
root
機能 指定した数値の累乗根を求める。powメソッドに逆数を指定するのと同じ。
パラメーター 累乗根の数値(必須)
戻り値 jPrimオブジェクト
コード記述例
sqrt
機能 平方根を求める。
パラメーター 引数なし
戻り値 jPrimオブジェクト
コード記述例
round
機能 数値を四捨五入する。
パラメーター 少数の場合、小数点第n位で四捨五入する
戻り値 jPrimオブジェクト
コード記述例
math
機能 Mathオブジェクトのメソッドを呼び出して演算する。オブジェクトの現在値は参照しないので注意。第2引数以降、必要な数値等を指定する。
パラメーター 1、Mathオブジェクトのメソッド名。sin、cosなど
2~、各メソッドで必須の引数を指定
戻り値 jPrimオブジェクト
コード記述例
isPrimeNumber
機能 素数判定を行う。素数なら1が、素数出ないなら0が返る。
パラメーター 引数なし
戻り値 jPrimオブジェクト
コード記述例
nextPrimeNumber
機能 現在値より大きい最初の素数を返す。
パラメーター 引数なし
戻り値 jPrimオブジェクト
コード記述例
fibonacci
機能 フィボナッチ数列の第n項目を計算する。
パラメーター 引数なし
戻り値 jPrimオブジェクト
コード記述例
progression
機能 数列の第n項目を計算する。第n項を求めるとして数値nはオブジェクトの現在値とする。
パラメーター 1、第1項の数値を指定(必須)
2、公差(公比)とする数値(必須)
3、等差数列は"arithmetic"(指定なしでも可)、等比数列は"geometric"を第3引数に指定
戻り値 jPrimオブジェクト
コード記述例
summation
機能 数列の和を計算する。第n項まで和を求めるとして、数値nはオブジェクトの現在値とする。
パラメーター 1、第1項の数値を指定(必須)
2、公差(公比)とする数値(必須)
3、等差数列は"arithmetic"(指定なしでも可)、等比数列は"geometric"を第3引数に指定
戻り値 jPrimオブジェクト
コード記述例
accumulator
機能 オブジェクトの現在値(数値)の回数分だけループ処理する。第1引数を初期値として、第2引数に指定したコールバックの戻り値を順次加算する。 結果はオブジェクト値に代入される。コールバックの戻り値をfalseにするとループを抜け出すことができる。
パラメーター 1、初期値を数値で指定(必須)
2、コールバック関数(必須)
3、バインドさせるオブジェクト
戻り値 jPrimオブジェクト
コード記述例
loop
機能 オブジェクト値(数値)の回数分だけループ処理する。戻り値はオブジェクト値がそのまま返る。
パラメーター 1、コールバック関数(必須)
2、バインドさせるオブジェクト
戻り値 jPrimオブジェクト
コード記述例
timer
機能 オブジェクト値(数値)の回数分だけ一定間隔で処理を行う。オブジェクト値をあらかじめ-1にすると無限ループになる。戻り値はオブジェクト値がそのまま返る。
パラメーター 1、処理を行う間隔をミリ秒単位で指定(必須)
2、コールバック関数(必須)
3、バインドさせるオブジェクト
戻り値 jPrimオブジェクト
コード記述例
counter
機能 counterメソッドはイテレータ・オブジェクトを返すメソッドである。オブジェクト値(数値)の回数分だけイテレータ処理をする。 返り値が通常のオブジェクトのため、メソッドチェーンは切れる。
パラメーター 1、コールバック関数
2、バインドさせるオブジェクト
戻り値 イテレータ・オブジェクト
コード記述例
format
機能 オブジェクト値(数値)をコンマで区切って文字列として返す。戻り値は数値オブジェクトではなく、 文字列オブジェクトに変換されて返される。
パラメーター 引数なし
戻り値 jPrimオブジェクト(文字列)
コード記述例

文字列型メソッド

setValue
機能 オブジェクトの値(文字列)を設定する。
パラメーター 設定する文字列(必須)
戻り値 jPrimオブジェクト
コード記述例
trim
機能 文字列の前後の空白を削除する。
パラメーター 指定なし
戻り値 jPrimオブジェクト
コード記述例
contains
機能 テキストに特定の文字列が含まれているかチェックする。文字列が含まれているときは、そのまま文字列を返す。 含まれていないときは空文字("")を返す。
パラメーター 検索する文字列(必須)
戻り値 jPrimオブジェクト
コード記述例
extract
機能 テキストをフィルターにかけて文字列を抽出する。文字列が見つからないときは空文字("")を返す。 チェックできるのは、メールアドレス(email)、、より厳密には(email-strict)、郵便番号(post)、URL(url)、電話番号(phone)、IPアドレス(ip)の他、
時刻(time)は、HH:MM:SS形式かどうかチェック(秒は省略可)され、
日付(date)は、YY(YY)/MM/DDまたはYY(YY)-MM-DD形式かチェック(年は省略可)される。
なお、メールアドレスは厳密なチェックではないので注意。
パラメーター 指定するフィルター(email/email-strict/post/url/phone/ip/time/date)
戻り値 jPrimオブジェクト
コード記述例
remove
機能 テキストに含まれる特定の文字列(パターン)をすべて削除する。
パラメーター 削除する文字列(正規表現)(必須)
戻り値 jPrimオブジェクト
コード記述例
camelize
機能 文字列をキャメルケース(大文字と小文字の表記)に変換する。
パラメーター 指定なし
戻り値 jPrimオブジェクト
コード記述例
hyphenate
機能 文字列をハイフン(-)でつなげる表記に変換する。
パラメーター 指定なし
戻り値 jPrimオブジェクト
コード記述例
underscore
機能 文字列をアンダースコア(_)でつなげる表記に変換する。
パラメーター 指定なし
戻り値 jPrimオブジェクト
コード記述例
replaceAll
機能 テキスト内の特定の文字列すべてを別の文字列で置き換える。 文字列または配列、正規表現リテラルの形で指定する。正規表現リテラルでglobalオプションがついていなくても自動的に全文検索にする。
パラメーター 1、検索する文字列あるいは文字列を要素に入れた配列、正規表現リテラル(必須)
2、置換文字列(必須)
戻り値 jPrimオブジェクト
コード記述例
censor
機能 テキスト内の特定の文字列を別の文字列で置き換える。replaceAllの特殊バージョン。 第2引数が一文字だと、置換前の文字列に合わせて自動で字数が増える。一方、二文字以上だとそのまま置き換えられる。
パラメーター 1、検閲する文字列あるいは配列、正規表現リテラル(必須)
2、置き換える文字列
戻り値 jPrimオブジェクト
コード記述例
convertCase
機能 テキスト内の文字列を全角半角・ひらカタ英数字など指定した文字に変換する。
パラメーター 全角ひらがな(zen-hira)、全角カタカナ(zen-kata)、全角英数(zen-alpha-numeric)、全角英字(zen-alpha)、全角数字(zen-numeric) 半角カタ(han-kata)、半角英数(han-alpha-numeric)、半角英字(han-alpha)、半角数字(han-numeric)
戻り値 jPrimオブジェクト
コード記述例
enumerate
機能 enumerateメソッドはイテレータ・オブジェクトを返すメソッドである。オブジェクト値(文字列)を指定した正規表現にかけ、 マッチした回数分だけイテレータ処理をする。replaceAllメソッドと異なり、引数には正規表現パターンのみを指定する。 返り値が通常のオブジェクトのため、メソッドチェーンは切れる。
パラメーター 正規表現パターン(リテラルもしくはRegExpコンストラクタ)
戻り値 イテレータ・オブジェクト
コード記述例

ブール型メソッド

setValue
機能 オブジェクトの値(ブール値)を設定する。
パラメーター 設定するブール値(必須)
戻り値 jPrimオブジェクト
コード記述例
toggle
機能 オブジェクトの真偽値を逆にする。
パラメーター 指定なし
戻り値 jPrimオブジェクト
コード記述例
execute
機能 オブジェクト値がtrueのときのみ指定した処理をする。 第1引数にコールバック関数、第2引数にバインドするオブジェクト(省略可)を指定します。 処理を遅延させたいときは、第1引数にミリ秒単位で遅延時間を指定し、他のパラメーターを後に続けます
パラメーター 1、遅延させる時間をミリ秒単位で設定(省略すると即時)
2、コールバック関数(必須)
3、バインドさせるオブジェクト
戻り値 jPrimオブジェクト
コード記述例

バージョン情報

2011/04/03 ver 0.0
ベータ版最初期のバージョン。機能的にまだ不十分。
2011/04/09 ver 0.1
数値・文字列・ブール値とも、そこそこ機能を追加。
 
2011/05/18 ver 0.2
数値オブジェクトにformatメソッドを追加。数値をコンマで区切って文字列に変換する。
文字列オブジェクトのextractメソッドに厳密なメールアドレス判定(email-strict)と、IPアドレス(ip)の判定機能を追加。
文字列オブジェクトにconvertCaseメソッドを追加。テキストを全角半角・ひらカタ英数字など指定した文字セットに変換する。
第1引数に以下のなかから選んで指定する。全角ひら(zen-hira)、全角カタ(zen-kata)、全角英数(zen-alpha-numeric)、
全角英字(zen-alpha)、全角数字(zen-numeric)、半角カタ(han-kata)、半角英数(han-alpha-numeric)、
半角英字(han-alpha)、半角数字(han-numeric)。
文字列オブジェクトにenumerateメソッドを追加。enumerateメソッドはイテレータ・オブジェクトを返すメソッドです。
オブジェクト値(文字列)を正規表現にかけて、マッチした文字列を列挙します。
返り値が通常のオブジェクトのため、メソッドチェーンは切れます。
第1引数にパターン文字列を指定します。replaceAllメソッドとは異なり、正規表現リテラルか正規表現オブジェクトでの指定となります。
イテレータ・オブジェクトはnextメソッド、hasNextメソッド、rewindメソッド、currentメソッド、lengthプロパティを持ちます。

※このライブラリはまだ開発中のベータ版です。不具合等ありましたら、ブログやメール等でお知らせください。

動作確認: Firefox3.6 Chrome11.0 IE8