The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Tripletail::Value - 値の検証や変換

SYNOPSIS

  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";

DESCRIPTION

セットした値1つの形式をチェックし、または形式を矯正する。

値を文字列として扱う場合は、常に UTF-8 である事が前提となる。

METHODS

一般

$TL->newValue
  $val = $TL->newValue
  $val = $TL->newValue($value)

Tripletail::Value オブジェクトを作成。 引数があれば、その引数で set が実行される。

set
  $val->set($value)

値をセット。

get
  $value = $val->get

矯正後の値を取得。

set系

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が使用される。

get系

getLen
  $n_bytes = $val->getLen

バイト数を返す。

getSjisLen
  $n_bytes = $val->getSjisLen

Shift_Jisでのバイト数を返す。

getCharLen
  $n_chars = $val->getCharLen

文字数を返す。

getAge
  $age = $val->getAge
  $age = $val->getAge($date)

YYYY-MM-DD形式の値として、$date の日付での年齢を返す。省略可能。 日付の形式が間違っている場合はundefを返す。

デフォルトは現在の日付。

getRegexp
  $regexp = $val->getRegexp($type)

指定された$typeに対応する正規表現を返す。 対応する$typeは次の通り。

hira ひらがなに対応する正規表現を返す。

kata カタカナに対応する正規表現を返す。

numbernarrow 半角数字に対応する正規表現を返す。

numberwide 全角数字に対応する正規表現を返す。

is系

isEmpty
  $bool = $val->isEmpty

値が空(undefまたは0文字)なら1。 そうでなければundefを返す。

isWhitespace
  $bool = $val->isWhitespace

半角/全角スペース、タブのみで構成されていれば1。 そうでなければundefを返す。値が0文字やundefの場合もundefを返す。

isBlank
  $bool = $val->isBlank

値が空(undefまたは0文字)であるか、半角/全角スペース、タブのみで構成されていれば1。 そうでなければundefを返す。値が0文字やundefの場合もundefを返す。

isPrintableAscii
  $bool = $val->isPrintableAscii

文字列が制御コードを除くASCII文字のみで構成されているなら1。 そうでなければundefを返す。値が0文字やundefの場合もundefを返す。

isWide
  $bool = $val->isWide

文字列が全角文字のみで構成されているなら1。 そうでなければundefを返す。値が0文字やundefの場合もundefを返す。

isPassword
  $bool = $val->isPassword

文字列が半角の数字、アルファベット大文字、小文字、記号を全て最低1ずつ含んでいるなら1。 そうでなければundefを返す。

isZipCode
  $bool = $val->isZipCode

7桁の郵便番号(XXX-XXXX形式)なら1。 そうでなければundefを返す。

実在する郵便番号かどうかは確認しない。

isTelNumber
  $bool = $val->isTelNumber

電話番号(/^\d[\d-]+\d$/)なら1。 そうでなければundefを返す。

数字で始まり、数字で終わり、ハイフン(-)が一つ以上あり、その間が数字とハイフン(-)のみで構成されていれば電話番号とみなす。

isEmail
  $bool = $val->isEmail

メールアドレスとして正しい形式であれば1。 そうでなければundefを返す。

isMobileEmail
  $bool = $val->isMobileEmail

メールアドレスとして正しい形式であれば1。 そうでなければundefを返す。

但し携帯電話のメールアドレスでは、アカウント名の末尾にピリオドを含んでいる場合がある為、これも正しい形式であるとみなす。

携帯電話キャリアのドメイン名を判別するわけではないため、通常のメールアドレスも 1 を返す。

isInteger($min,$max)
  $bool = $val->isInteger
  $bool = $val->isInteger($min,$max)

整数で、かつ$min以上$max以下なら1。$mix,$maxは省略可能。 そうでなければundefを返す。 空もしくはundefの場合は、undefを返す。

デフォルトでは、最大最小のチェックは行わなず整数であれば1を返す。

isReal($min,$max)
  $bool = $val->isReal
  $bool = $val->isReal($min,$max)

整数もしくは小数で、かつ$min以上$max以下なら1。$mix,$maxは省略可能。 そうでなければundefを返す。 空もしくはundefの場合は、undefを返す。

デフォルトでは、最大最小のチェックは行わなず、整数もしくは小数であれば1を返す。

isHira
  $bool = $val->isHira

平仮名だけが含まれている場合は1。 そうでなければundefを返す。値が0文字やundefの場合もundefを返す。

isKata
  $bool = $val->isKata

片仮名だけが含まれている場合は1。 そうでなければundefを返す。値が0文字やundefの場合もundefを返す。

isExistentDay
  $bool = $val->isExistentDay

YYYY-MM-DDで設定された日付が実在するものなら1。 そうでなければundefを返す。

isGif
  $bool = $val->isGif
isJpeg
  $bool = $val->isJpeg
isPng
  $bool = $val->isPng

それぞれの形式の画像なら1。 そうでなければundefを返す。

画像として厳密に正しい形式であるかどうかは確認しない。 ( file(1) 程度の判断のみ。)

isHttpUrl
  $bool = $val->isHttpUrl

"http://" で始まる文字列なら1。 そうでなければundefを返す。

isHttpsUrl
  $bool = $val->isHttpsUrl

"https://" で始まる文字列なら1。 そうでなければundefを返す。

isLen($min,$max)
  $bool = $val->isLen($min,$max)

バイト数の範囲が指定値以内かチェックする。$mix,$maxは省略可能。 範囲内であれば1、そうでなければundefを返す。

isSjisLen($min,$max)
  $bool = $val->isSjisLen($min,$max)

Shift-Jisでのバイト数の範囲が指定値以内かチェックする。$mix,$maxは省略可能。 範囲内であれば1、そうでなければundefを返す。

isCharLen($min,$max)
  $bool = $val->isCharLen($min,$max)

文字数の範囲が指定値以内かチェックする。$mix,$maxは省略可能。 範囲内であれば1、そうでなければundefを返す。

isPortable
  $bool = $val->isPortable

機種依存文字以外のみで構成されていれば1。 そうでなければ(機種依存文字を含んでいれば)undefを返す。

値が0文字やundefの場合は1を返す。

isIpAddress
  $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'。

conv系

convHira
  $val->convHira

ひらがなに変換する。

convKata
  $val->convKata

カタカナに変換する。

convNumber
  $val->convNumber

半角数字に変換する。

convNarrow
  $val->convNarrow

全角文字を半角に変換する。

convWide
  $val->convWide

半角文字を全角に変換する。

convComma
  $val->convComma

半角数字を3桁区切りのカンマ表記に変換する。

convLF
  $val->convLF

改行コードを LF (\n) に変換する。

convBR
  $val->convBR

改行コードを <BR>\n に変換する。

force系

forceHira
  $val->forceHira

ひらがな以外の文字は削除。

forceKata
  $val->forceKata

カタカナ以外の文字は削除。

forceNumber
  $val->forceNumber

半角数字以外の文字は削除。

forceMin($max,$val)
  $val->forceMin($max,$val)

半角数字以外の文字を削除し、min未満なら$valをセットする。$val省略時はundefをセットする。

forceMax($max,$val)
  $val->forceMax($max,$val)

半角数字以外の文字を削除し、maxより大きければ$valをセットする。$val省略時はundefをセットする。

forceMaxLen($max)
  $val->forceMaxLen($max)

最大バイト数を指定。超える場合はそのバイト数までカットする。

forceMaxUtf8Len($max)
  $val->forceMaxUtf8Len($max)

UTF-8での最大バイト数を指定。 超える場合はそのバイト数以下まで UTF-8の文字単位でカットする。

forceMaxSjisLen($max)
  $val->forceMaxSjisLen($max)

SJISでの最大バイト数を指定。超える場合はそのバイト数以下まで SJISの文字単位でカットする。

forceMaxCharLen($max)
  $val->forceMaxCharLen($max)

最大文字数を指定。超える場合はその文字数以下までカットする。

その他

trimWhitespace
  $val->trimWhitespace

値の前後に付いている半角/全角スペース、タブを削除する。

countWords

全角/半角スペースで単語に区切った時の個数を返す。

strCut @str = $val->strCut($charanum)

指定された文字数で文字列を区切り、配列に格納する。

SEE ALSO

Tripletail

AUTHOR INFORMATION

    Copyright 2006 YMIRLINK Inc. All Rights Reserved.

    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/