npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

iii-validator

v1.0.15

Published

If you give it classes, you can perform validation.

Downloads

20

Readme

インストール

npm install iii-validator

基本的な使い方

  1. バリデーション対象の input / select / textarea 要素に validate クラスを付与
  2. 1で validate クラスを付与した要素に validations::xxxx の形式で実行するバリデーションを指定したクラスを付与
  3. バリデーションを通過しなかった場合にエラーメッセージを表示する要素を用意し error-tip クラスを付与
  4. バリデーション対象要素と error-tip 要素を form-group クラスを付与した要素でラップ

例)

<div class='form-group'>
    <input name='email' type='text' class='validate validations::empty'>
    <div class='error-tip'></div>
</div>

上記のように要素を準備したら iii-validator のインスタンスを生成

import MyValidator from 'iii-validator'
const Validator = new MyValidator()

あとは任意のタイミングでバリデーションを実行

element.addEventListener('click', () => Validator.validate())

ひとつのフォームに複数のバリデーションを実行したい場合

validations:: のあとに : 区切りでバリデーション名を列挙

例)

<div class='form-group'>
    <input name='email' type='text' class='validate validations::required:email'>
    <div class='error-tip'></div>
</div>

error-tip のスタイル

バリデーション実行後エラーとなった form-group の error-tip 内にはエラーメッセージが追加されますので .error-tip に任意のスタイルを定義してください。

エラーとなった要素のスタイル

バリデーション実行後エラーとなったバリデーション対象要素には is-invalid クラスが付与されますので .is-invalid に任意のスタイルを定義するか、 react-iii-validator のインスタンス生成時に次のように配列形式で invalidClasses を渡すことで is-invalid クラスに加えて任意のクラスを付与できます。

const Validator = new ValidatorInitializer({invalidClasses: ['bg-red-200', 'text-red']})

実装済みバリデーションと使用方法一覧

【required】

概要

入力必須項目のバリデーションです。

使用方法

バリデーション対象要素に validations::required クラスを付与します。

【multipleRequired】

概要

複数のバリデーション対象要素において、少なくともいずれかひとつに入力が必要な場合のバリデーションです。

使用方法

  1. 複数のバリデーション対象要素に validations::multipleRequired クラスを付与します。
  2. 1で対象とした各要素に multipleRequiredGroup::{groupId} クラスを付与します。 ※{groupId} には各要素共通の文字列を指定
  3. 1で対象とした各要素にエラーメッセージで表示する名前を multipleRequiredName::{name} クラスを付与します。 ※{name} は日本語使用可能

使用例

<div class='form-group flex'>
    <label>名前</label>
    <div>
        <input name='name' type='text' class='validate validations::multipleRequired multipleRequiredGroup::profile multipleRequiredName::名前'>
        <div class='error-tip'></div>
    </div>
</div>
<div class='form-group flex'>
    <label>メールアドレス</label>
    <div>
        <input name='email' type='text' class='validate validations::multipleRequired multipleRequiredGroup::profile multipleRequiredName::メールアドレス'>
        <div class='error-tip'></div>
    </div>
</div>

上記の状態でエラーとなった場合 名前、メールアドレスのいずれかの入力は必須です。 とエラーメッセージが表示されます。

【email】

概要

メールアドレス形式のバリデーションです。

使用方法

バリデーション対象要素に validations::email クラスを付与します。

【confirmation】

概要

メールアドレスや新規パスワード設定時などで使用する、確認入力時のバリデーションです。
入力値が確認元に指定した要素の値と異なる場合はエラーとなります。

使用方法

  1. バリデーション対象要素に validations::confirmation クラスを付与します。
  2. 1で対象とした要素に confirmationBase::{name} クラスを付与します。 ※{name} には確認元の要素のname属性の文字列を指定

使用例

<div class='form-group'>
    <input name='email' type='text' class='validate validations::empty:email'>
    <div class='error-tip'></div>
</div>
<div class='form-group'>
    <input name='email_confirmation' type='text' class='validate validations::confirmation confirmationBase::email'>
    <div class='error-tip'></div>
</div>

【minimumCharacters】

概要

最小文字数のバリデーションです。

使用方法

バリデーション対象要素に validations::minimumCharacters-{number} クラスを付与します。 ※{number} には最小文字数を指定

使用例

8文字未満の場合にエラーとなる場合の例

<div class='form-group'>
    <input name='password' type='password' class='validate validations::minimumCharacters-8'>
    <div class='error-tip'></div>
</div>

【maximumCharacters】

概要

最大文字数のバリデーションです。

使用方法

バリデーション対象要素に validations::maximumCharacters-{number} クラスを付与します。 ※{number} には最大文字数を指定

使用例

16文字を超える場合にエラーとなる場合の例

<div class='form-group'>
    <input name='password' type='password' class='validate validations::maximumCharacters-16'>
    <div class='error-tip'></div>
</div>

【charactersRange】

概要

xx文字以上、yy文字以下のバリデーションです。

使用方法

バリデーション対象要素に validations::charactersRange-{min}-{max} クラスを付与します。 ※{min} には最小文字数、 {max}に最大文字数を指定

使用例

8文字未満または16文字を超える場合にエラーとなる場合の例

<div class='form-group'>
    <input name='password' type='password' class='validate validations::charactersRange-8-16'>
    <div class='error-tip'></div>
</div>

【halfWidthNumber】

概要

半角数字のバリデーションです。

使用方法

バリデーション対象要素に validations::halfWidthNumber クラスを付与します。

【katakana】

概要

全角カタカナのバリデーションです。

使用方法

バリデーション対象要素に validations::katakana クラスを付与します。

【hiragana】

概要

ひらがなのバリデーションです。

使用方法

バリデーション対象要素に validations::hiragana クラスを付与します。

オプション一覧

インスタンス生成時

オプションはインスタンス生成時にオブジェクト形式で渡せます。
オプションのプロパティはすべてオプショナルなので、必要なものだけ渡してください。

|オプション名|型|デフォルト値|説明| |----|----|----|----| |validationGroup|Document | HTMLElement|document| iii-validator の探索ルートを指定できます。ページ内に複数の <form> があり、各 <form> ごとにバリデーションを行いたい場合には form 要素を渡すか、任意のHTMLElementを渡して探索ルートとしてください。| |validClasses|string[]|undefined| .validate を付与した要素がバリデーションに通過したときに付与したいクラス名を配列形式で指定できます。ひとつだけクラス名を渡す場合も配列形式にしてください。| |invalidClasses|string[]|undefined| .validate を付与した要素がバリデーションに通過しなかったときに付与したいクラス名を配列形式で指定できます。ひとつだけクラス名を渡す場合も配列形式にしてください。|

バリデーション実行方法

バリデーション実行時に任意の name を渡すことで特定のバリデーション対象要素にバリデーションを実行できます。

<div class='form-group flex'>
    <label>ユーザー名</label>
    <div>
        <input name='user_name' type='text' class='validate validations::required'>
        <div class='error-tip'></div>
    </div>
</div>
<div class='form-group flex'>
    <label>メールアドレス</label>
    <div>
        <input name='email' type='text' class='validate validations::required:email'>
        <div class='error-tip'></div>
    </div>
</div>
Validator.validate('user_name')
// [name=user_name] 属性を持つ要素にバリデーションをトリガー