SPACEKEY

Technical Memorandum

is.js - javascriptでよく使うチェックを集めたライブラリ

February 23, 2015

is.js(https://github.com/arasatasaygin/is.js)は、JavaScriptのデータチェックに使えるライブラリです。
日付かどうか、URLかどうか、IPアドレスかどうか……等々、なんらか入力や状況をチェックをするときなどは、いちいち調べて書いたりすることがありますが、これを入れておけばよくあるパターンのチェックは可能になります。

チェックできる内容は、v0.6の段階で下記の通りです。
内容的に日本語の環境では使えないものもありますが、その辺はソースを見て追加したり、使えそうな部分を参考にするという使い方もできますね。

Type checks

  • is.arguments……argumentsオブジェクトか
  • is.array……配列か
  • is.boolean……bool型か
  • is.date……日付型か
  • is.error……Errorオブジェクトか
  • is.function……関数か
  • is.nan……NaNか
  • is.null……nullか
  • is.number……数値か
  • is.object……objectか
  • is.json……jsonか
  • is.regexp……正規表現か
  • is.string……文字列か
  • is.char……charか
  • is.undefined……undefinedか
  • is.sameType……2つの引数が同じ型か

Presence checks

  • is.empty……emptyか
  • is.existry……nullでもundefinedでもないか
  • is.truthy……trueと判断される内容か
  • is.falsy……falseと判断される内容か
  • is.space……空白か

RegExp checks

  • is.url……URLか
  • is.email……メールアドレスか
  • is.creditCard……クレジットカード番号か
  • is.alphaNumeric……英数字か
  • is.timeString……時刻を表す文字列か
  • is.dateString……日付を表す文字列か
  • is.usZipCode……アメリカの郵便番号を表す文字列か
  • is.caPostalCode……カナダの郵便番号を表す文字列か
  • is.ukPostCode……イギリスの郵便番号を表す文字列か
  • is.nanpPhone……北米形式の電話番号を表す文字列か
  • is.eppPhone……extensible provisioning protocol phoneか(なにこれ?)
  • is.socialSecurityNumber……社会保障番号か
  • is.affirmative……肯定的か(true,t,yes,y,ok,okayとかにまっちします)
  • is.hexadecimal……16進表現か
  • is.hexColor……16進の色表現か
  • is.ip……IPアドレスか
  • is.ipv4……IPv4アドレスか
  • is.ipv6……IPv6アドレスか

String checks

  • is.include……対象の文字列に指定した文字列が含まれるか
  • is.upperCase……文字列が全て大文字か
  • is.lowerCase……文字列が全て小文字か
  • is.startWith……文字列が指定した文字列で始まるか
  • is.endWith……文字列が指定した文字列で終わるか
  • is.capitalized……先頭大文字で記載されているか
  • is.palindrome……回文かどうか

Arithmetic checks

  • is.equal……2つの引数がイコールかどうか
  • is.even……偶数かどうか
  • is.odd……奇数かどうか
  • is.positive……正の数か
  • is.negative……負の数か
  • is.above……最初の引数が、あとの引数より大きいか
  • is.under……最初の引数が、あとの引数より小さいか
  • is.within……最初の引数が、あとの2つの引数以内か
  • is.decimal……decimal型か
  • is.integer……整数型か
  • is.finite……有限数か
  • is.infinite……無限数か

Object checks

  • is.propertyCount……プロパティの数が指定した数か
  • is.propertyDefined……指定したプロパティが定義されているか
  • is.windowObject……windowオブジェクトか
  • is.domNode……domノードか

Array checks

  • is.inArray……指定した値が配列に存在するか
  • is.sorted……配列がソートされているか

Environment checks

  • is.ie……IEかどうか
  • is.chrome……Chromeか
  • is.firefox……Firefoxか
  • is.opera……Operaか
  • is.safari……Safariか
  • is.ios……iOSか
  • is.iphone……iPhoneか
  • is.ipad……iPadか
  • is.ipod……iPodか
  • is.android……Androidか
  • is.androidPhone……Android Phoneか
  • is.androidTablet……Android Tabletか
  • is.blackberry……BlackBerryか
  • is.windowsPhone……WindowsPhoneか
  • is.windowsTablet……Windows Tabletか
  • is.windows……Windowsか
  • is.mac……Macか
  • is.linux……Linuxか
  • is.desktop……デスクトップデバイスか
  • is.mobile……モバイルデバイスか
  • is.tablet……タブレットか
  • is.online……オンラインか
  • is.offline……オフラインか

Time checks

  • is.today……指定日付が本日か
  • is.yesterday……指定日付が昨日か
  • is.tomorrow……指定日付が明日か
  • is.past……指定日付が過去か
  • is.future……指定日付が未来か
  • is.day……日付が指定した曜日か
  • is.month……日付が指定した月か
  • is.year……日付が指定した年か
  • is.leapYear……閏年か
  • is.weekend……土日か
  • is.weekday……月~金か
  • is.inDateRange……日付が指定した2つの日付以内か
  • is.inLastWeek……日付が先週のものか
  • is.inLastMonth……日付が先月のものか
  • is.inLastYear……日付が去年のものか
  • is.inNextWeek……日付が来週のものか
  • is.inNextMonth……日付が来月のものか
  • is.inNextYear……日付が来年のものか
  • is.quarterOfYear……日付が指定した四半期か
  • is.dayLightSavingTime……日付が夏時間の期間か