TABLE OF CONTENTS
Tripletail::Value - 値の検証や変換
  my $value = $TL->newValue('null@example.org');
  
  if ($value->isEmail) {
      print $value->get . " is a valid email address.\n";
  }
  # null@example.org を表示
  print $value->convWide->get . "\n";セットした値1つの形式をチェックし、または形式を矯正する。
値を文字列として扱う場合は、常に UTF-8 である事が前提となる。
$TL->newValue
  $val = $TL->newValue
  $val = $TL->newValue($value)Tripletail::Value オブジェクトを作成。 引数があれば、その引数で set が実行される。
  $val->set($value)値をセット。
  $value = $val->get矯正後の値を取得。
setDate
  $val->setDate($year, $month, $day)年月日を指定してYYYY-MM-DD形式でセットする。 日付として不正である場合はundefがセットされる。
setDateTime
  $val->setDateTime($year, $month, $day, $hour, $min, $sec)各値を指定して時刻をYYYY-MM-DD HH:MM:SS形式でセットする。 時刻として不正である場合はundefがセットされる。 $min、$secは省略でき、省略時は0が使用される。
setTime
  $val->setTime($hour, $min, $sec)各値を指定して時刻をHH:MM:SS形式でセットする。 範囲は00:00:00~23:59:59までで、時刻として正しくない場合はundefがセットされる。 $min、$secは省略でき、省略時は0が使用される。
  $n_bytes = $val->getLenバイト数を返す。
  $n_bytes = $val->getSjisLenShift_Jisでのバイト数を返す。
  $n_chars = $val->getCharLen文字数を返す。
  $age = $val->getAge
  $age = $val->getAge($date)YYYY-MM-DD形式の値として、$date の日付での年齢を返す。省略可能。 日付の形式が間違っている場合はundefを返す。
デフォルトは現在の日付。
  $regexp = $val->getRegexp($type)指定された$typeに対応する正規表現を返す。 対応する$typeは次の通り。
hira ひらがなに対応する正規表現を返す。
kata カタカナに対応する正規表現を返す。
numbernarrow 半角数字に対応する正規表現を返す。
numberwide 全角数字に対応する正規表現を返す。
  $bool = $val->isEmpty値が空(undefまたは0文字)なら1。 そうでなければundefを返す。
  $bool = $val->isWhitespace半角/全角スペース、タブのみで構成されていれば1。 そうでなければundefを返す。値が0文字やundefの場合もundefを返す。
  $bool = $val->isBlank値が空(undefまたは0文字)であるか、半角/全角スペース、タブのみで構成されていれば1。 そうでなければundefを返す。値が0文字やundefの場合もundefを返す。
  $bool = $val->isPrintableAscii文字列が制御コードを除くASCII文字のみで構成されているなら1。 そうでなければundefを返す。値が0文字やundefの場合もundefを返す。
  $bool = $val->isWide文字列が全角文字のみで構成されているなら1。 そうでなければundefを返す。値が0文字やundefの場合もundefを返す。
  $bool = $val->isPassword
  $bool = $val->isPassword(@spec)
文字列がisPrintableAsciiを満たして且つ指定された要素を含んでいれば真を,
そうでなければ偽を返す.
指定された文字以外が入っていることに関しては考慮しない.
@spec に指定できるのは, alpha, ALPHA, digit, symbol の
いずれかの文字列若しくは文字を含んだ配列リファレンス.
指定しなかった場合のデフォルト値は, qw(alpha ALPHA digit symbol) となる.
記号に含まれるものは以下の32文字. (0.44以前では空白文字も含めた33文字でした)
     ! " # $ % & ' ( ) * + ' - . /
     : ; < = > ? @   [ \ ] ^ _ `  { | } ~  $bool = $val->isZipCode7桁の郵便番号(XXX-XXXX形式)なら1。 そうでなければundefを返す。
実在する郵便番号かどうかは確認しない。
  $bool = $val->isTelNumber電話番号(/^\d[\d-]+\d$/)なら1。 そうでなければundefを返す。
数字で始まり、数字で終わり、ハイフン(-)が一つ以上あり、その間が数字とハイフン(-)のみで構成されていれば電話番号とみなす。
  $bool = $val->isEmailメールアドレスとして正しい形式であれば1。 そうでなければundefを返す。
  $bool = $val->isMobileEmailメールアドレスとして正しい形式であれば1。 そうでなければundefを返す。
但し携帯電話のメールアドレスでは、アカウント名の末尾にピリオドを含んでいる場合がある為、これも正しい形式であるとみなす。
携帯電話キャリアのドメイン名を判別するわけではないため、通常のメールアドレスも 1 を返す。
  $bool = $val->isInteger
  $bool = $val->isInteger($min,$max)整数で、かつ$min以上$max以下なら1。$mix,$maxは省略可能。 そうでなければundefを返す。 空もしくはundefの場合は、undefを返す。
デフォルトでは、最大最小のチェックは行わなず整数であれば1を返す。
  $bool = $val->isReal
  $bool = $val->isReal($min,$max)整数もしくは小数で、かつ$min以上$max以下なら1。$mix,$maxは省略可能。 そうでなければundefを返す。 空もしくはundefの場合は、undefを返す。
デフォルトでは、最大最小のチェックは行わなず、整数もしくは小数であれば1を返す。
  $bool = $val->isHira平仮名だけが含まれている場合は1。 そうでなければundefを返す。値が0文字やundefの場合もundefを返す。
  $bool = $val->isKata片仮名だけが含まれている場合は1。 そうでなければundefを返す。値が0文字やundefの場合もundefを返す。
  $bool = $val->isExistentDay
  $bool = $val->isExistentDay(format => 'YMD',date_delim => '-')
  $bool = $val->isExistentDay(date_delim_optional => '-')YYYY-MM-DDで設定された日付が実在するものなら1。 そうでなければundefを返す。
引数を省略した場合はYYYY-MM-DDで設定された日付のみチェックする。
fomrat 日付フォーマットを指定する。省略可能。 省略時は'YYYYMMDD'が指定される。 'YYYYMMDD' 'YMD'
date_delim 日付区切り文字を指定する。区切り文字は複数指定可能。 省略時は-が指定される。
date_delim_optional 日付区切り文字を指定する。指定した区切り文字と区切り文字なしを対象とする。 formatは'YYYYMMDD'のみ指定可能。 date_delimと同時に指定する事は出来ない。 省略可能。
  $bool = $val->isExistentTime
  $bool = $val->isExistentTime(format => 'HMS',time_delim => ':')
  $bool = $val->isExistentTime(time_delim_optional => ':')HH:MM:SSで設定された時刻が実在するものなら1。 そうでなければundefを返す。
引数を省略した場合はHH:MM:SSで設定された時刻のみチェックする。
fomrat 時刻フォーマットを指定する。省略可能。 省略時は'HHMMSS'が指定される。 'HHMMSS' 'HMS'
time_delim 時刻区切り文字を指定する。区切り文字は複数指定可能。 省略時は:が指定される。
time_delim_optional 時刻区切り文字を指定する。指定した区切り文字と区切り文字なしを対象とする。 formatは'HHMMSS'のみ指定可能。 time_delimと同時に指定する事は出来ない。 省略可能。
  $bool = $val->isExistentDateTime
  $bool = $val->isExistentDateTime(format => 'YMD HMS',date_delim => '-/',time_delim => ':')
  $bool = $val->isExistentDateTime(date_delim_optional => '-/',time_delim_optional => ':')YYYY-MM-DD HH:MM:SSで設定された日付時刻が実在するものなら1。 そうでなければundefを返す。
引数を省略した場合はYYYY-MM-DD HH:MM:SSで設定された日付時刻のみチェックする。
fomrat 日付時刻フォーマットを指定する。省略可能。 省略時は'YYYYMMDD HHMMSS'が指定される。 'YYYYMMDD HHMMSS' 'YMD HHMMSS' 'YYYYMMDD HMS' 'YMD HMS'
date_delim 日付区切り文字を指定する。区切り文字は複数指定可能。 省略時は-が指定される。
time_delim 時刻区切り文字を指定する。区切り文字は複数指定可能。 省略時は:が指定される。
date_delim_optional 日付区切り文字を指定する。指定した区切り文字と区切り文字なしを対象とする。 formatは'YYYYMMDD HHMMSS'のみ指定可能。 date_delimと同時に指定する事は出来ない。 省略可能。
time_delim_optional 時刻区切り文字を指定する。指定した区切り文字と区切り文字なしを対象とする。 formatは'YYYYMMDD HHMMSS'のみ指定可能。 time_delimと同時に指定する事は出来ない。 省略可能。
  $bool = $val->isGif  $bool = $val->isJpeg  $bool = $val->isPngそれぞれの形式の画像なら1。 そうでなければundefを返す。
画像として厳密に正しい形式であるかどうかは確認しない。 ( file(1) 程度の判断のみ。)
  $bool = $val->isHttpUrl"http://" で始まる文字列なら1。 そうでなければundefを返す。
  $bool = $val->isHttpsUrl"https://" で始まる文字列なら1。 そうでなければundefを返す。
  $bool = $val->isLen($min,$max)バイト数の範囲が指定値以内かチェックする。$mix,$maxは省略可能。 範囲内であれば1、そうでなければundefを返す。
  $bool = $val->isSjisLen($min,$max)Shift-Jisでのバイト数の範囲が指定値以内かチェックする。$mix,$maxは省略可能。 範囲内であれば1、そうでなければundefを返す。
  $bool = $val->isCharLen($min,$max)文字数の範囲が指定値以内かチェックする。$mix,$maxは省略可能。 範囲内であれば1、そうでなければundefを返す。
  $bool = $val->isPortable機種依存文字以外のみで構成されていれば1。 そうでなければ(機種依存文字を含んでいれば)undefを返す。
値が0文字やundefの場合は1を返す。
機種依存文字は、以下の文字を指す。
Shift_JISコード上でのNEC選定IBM拡張文字(89-92区)、IBM拡張文字(115-119区)、特殊文字エリア、JIS外字エリア、MAC外字及び縦組用、 JIS領域外の13区の記号。 Unicode上でのプライベート領域(U+E000~U+F8FF、U+F0000~U+10FFFF)。
携帯絵文字も機種依存文字に含まれる。(文字コード変換によってUnicode上でのプライベート領域にマップされる)
  $bool = $val->isPcPortable携帯絵文字以外で構成されていれば1。 そうでなければ(携帯絵文字を含んでいれば)undefを返す。
携帯絵文字は、文字コード変換によって Unicode上のプライベート領域(U+FF000~U+FFFFF)に マップされます。この領域の文字があるかで判定を行います。
  $bool = $val->isDomainNameドメイン名として正当であれば 1 を返し、そうでなければ undef を返す。
  $bool = $val->isIpAddress($checkmask)$checkmaskに対して、設定されたIPアドレスが一致すれば1。そうでなければundef。
$checkmaskは空白で区切って複数個指定する事が可能。
例:'10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 127.0.0.1 fe80::/10 ::1'。
  $bool = $val->isDateString('%Y/%m/%d')日付フォーマット文字列で指定された形式に沿っていれば1。そうでなければundef。 フォーマット文字列は Tripletail::DateTime#strFormat のものと同一である。
  $bool = $val->isChar($format)
 $format ::= 'digit' | 'alpha' | 'loweralpha' | 'upperalpha' | ARRAYREF of char指定された文字のみで構成されていれば 1 、そうでなければ undef 。
空文字列に対しては undef を返す。
  $val->convHiraひらがなに変換する。
  $val->convKataカタカナに変換する。
  $val->convNumber半角数字に変換する。
  $val->convNarrow全角文字を半角に変換する。
  $val->convWide半角文字を全角に変換する。
  $val->convKanaNarrow全角カタカナを半角に変換する。
  $val->convKanaWide半角カタカナを全角に変換する。
  $val->convComma半角数字を3桁区切りのカンマ表記に変換する。
  $val->convLF改行コードを LF (\n) に変換する。
  $val->convBR改行コードを <BR>\n に変換する。
  $val->forceHiraひらがな以外の文字は削除。
  $val->forceKataカタカナ以外の文字は削除。
  $val->forceNumber半角数字以外の文字は削除。
  $val->forceMin($max,$val)半角数字以外の文字を削除し、min未満なら$valをセットする。$val省略時はundefをセットする。
  $val->forceMax($max,$val)半角数字以外の文字を削除し、maxより大きければ$valをセットする。$val省略時はundefをセットする。
  $val->forceMaxLen($max)最大バイト数を指定。超える場合はそのバイト数までカットする。
  $val->forceMaxUtf8Len($max)UTF-8での最大バイト数を指定。 超える場合はそのバイト数以下まで UTF-8の文字単位でカットする。
  $val->forceMaxSjisLen($max)SJISでの最大バイト数を指定。超える場合はそのバイト数以下まで SJISの文字単位でカットする。
  $val->forceMaxCharLen($max)最大文字数を指定。超える場合はその文字数以下までカットする。
  $val->forcePortable機種依存文字を削除。(携帯絵文字も機種依存文字に含む)
詳しい判定条件は "isPortable" メソッドを参照。
  $val->forcePcPortable携帯絵文字を削除。
詳しい判定条件は "isPcPortable" メソッドを参照。
  $val->trimWhitespace値の前後に付いている半角/全角スペース、タブを削除する。
全角/半角スペースで単語に区切った時の個数を返す。
  @str = $val->strCut($charanum)指定された文字数で文字列を区切り、配列に格納する。
  @str = $val->strCutSjis($charanum)Shift_JISコードに変換した際に、指定されたバイト数以下になるように 文字列を区切り、配列に格納する。
  @str = $val->strCutUtf8($charanum)UTF-8コードに変換した際に、指定されたバイト数以下になるように 文字列を区切り、配列に格納する。
  $randomstring = $val->genRandomString($length)
  $randomstring = $val->genRandomString($length, \@types)
$length で指定された文字列長のランダムな文字列を生成する。
使用する文字の種類は配列リファレンスで指定する。
小文字アルファベット、大文字アルファベット、数値に関してはそれぞれ、
alpha、ALPHA、num で指定が可能。
文字種を省略した時にデフォルトで使われる文字は以下の通り:
     2 3 4 5 6 7 8  
 a   c d e f g h         m n   p   r   t u v w x y z
 A B C D E F G H   J K L M N   P   R S T U V W X Y Z  $charset = $val->detectMobileAgent()User-Agent 文字列から携帯電話の文字コード名を判別して返す。返される文字列は 'sjis-au' のような Unicode::Japanese の文字コード名になる。判別できなかった場合は undef を返す。
判別に使われる規則は次の通り。
 UserAgent が
   DoCoMo     で始まる  → sjis-imode
   ASTEL      で始まる  → sjis-doti
   Vodafone   で始まる  → utf8-jsky
   Vemulator  で始まる  → utf8-jsky
   SoftBank   で始まる  → utf8-jsky
   Semulator  で始まる  → utf8-jsky
   MOT-       で始まる  → utf8-jsky
   J-PHONE    で始まる  → sjis-jsky
   J-EMULATOR で始まる  → sjis-jsky
   UP.Browser で始まる  → sjis-auCopyright 2006 YMIRLINK Inc.
This framework is free software; you can redistribute it and/or modify it under the same terms as Perl itself
このフレームワークはフリーソフトウェアです。あなたは Perl と同じライセンスの 元で再配布及び変更を行うことが出来ます。
Address bug reports and comments to: tl@tripletail.jp
HP : http://tripletail.jp/