LoginSignup
1
0

More than 1 year has passed since last update.

rex0220 項目検証プラグイン よくある値チェック

Posted at

項目検証プラグインで、電話番号やメールアドレスなどのよくあるチェックを行ってみます。

概要

項目検証プラグインのカスタムバリデーション機能で、よく使われるチェックを行います。

エラー表示例
2023-02-04_17h09_46.png

項目検証プラグインのカスタムバリデーション設定例
2023-02-04_17h18_40.png

TESTRE 関数と正規表現

TESTRE 関数は、文字列の検索(正規表現)で、文字の有無(true, false)を返します。
正規表現を使うと文字列をパターンでチェックできます。

3桁の数字チェック例

3桁の数字以外をエラー
※必須項目の場合は、必須チェックが優先されます。

// 検証条件
NOT(TESTRE(文字列,"^[0-9]{3}$"))
// メッセージ
"3桁の数字に問題があります"
  • 「3桁数字」以外をエラーにします。
    • NOT( : 否定(パターンに一致しないもの)
      • TESTRE( : 文字列を正規表現でチェック(パターンに一致するもの)
        • 文字列 : フィールドコード
        • "^[0-9]{3}$" : 正規表現のパターン
          • ^ : 文字列の先頭
          • [0-9]{3} : 数字3桁
          • $ : 文字列の最後

入力時のみ3桁の数字チェック例

文字列が入力かつ3桁の数字以外をエラーにする場合、AND 関数で未入力をチェックしたり、正規表現で未入力をチェックできます。

  • AND 関数で、未入力をチェック
// 検証条件
AND(文字列,
  NOT(TESTRE(文字列,"^[0-9]{3}$"))
)
// メッセージ
"3桁の数字に問題があります"
  • 正規表現で、未入力をチェック
// 検証条件
NOT(TESTRE(文字列,"^([0-9]{3})?$"))
// メッセージ
"3桁の数字に問題があります"

? : 直前の"([0-9]{3})" の 0 回か 1 回にマッチ

郵便番号

正規表現で「3桁数字-4桁数字」のパターンに一致しないものをエラーにします。

// 検証条件
NOT(TESTRE(郵便番号,"^[0-9]{3}-[0-9]{4}$"))
// メッセージ
"郵便番号に問題があります"
  • 「3桁数字-4桁数字」以外をエラーにします。
    • NOT( : 否定(パターンに一致しないもの)
      • TESTRE( : 文字列を正規表現でチェック(パターンに一致するもの)
        • 郵便番号 : フィールドコード
        • "^[0-9]{3}-[0-9]{4}$" : 正規表現のパターン
          • ^ : 文字列の先頭
          • [0-9]{3} : 数字3桁
          • - : ハイフォン
          • [0-9]{4} : 数字4桁
          • $ : 文字列の最後

電話番号

// 検証条件
NOT(TESTRE(電話番号,"^0([0-9]-[0-9]{4}|[0-9]{2}-[0-9]{3}|[0-9]{3}-[0-9]{2}|[0-9]{4}-[0-9])-[0-9]{4}$"))
// メッセージ
"電話番号に問題があります"

※リンク項目の場合は、kintone API の仕様により、値変更イベントが発生しないため、リンク項目の値が変更されたタイミングでは、エラーチェックが行われません。
他の項目チェックまたはレコード保存時に、リンク項目のチェックが行われます。

携帯番号

// 検証条件
NOT(TESTRE(携帯番号,"^0[789]0-[0-9]{4}-[0-9]{4}$")){4}$"))
// メッセージ
"携帯番号に問題があります"

メールアドレス

// 検証条件
NOT(TESTRE(メールアドレス,"^[a-zA-Z0-9_.+-]+@([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.)+[a-zA-Z]{2,}$"))// メッセージ
"メールアドレスに問題があります"

半角英数字

// 検証条件
NOT(TESTRE(半角英数字,"^[0-9a-zA-Z]*$"))
// メッセージ
"半角英数字のみ"

半角数字

// 検証条件
NOT(TESTRE(半角数字,"^[0-9]*$"))
// メッセージ
"半角数字のみ"

全角ひらがな

// 検証条件
NOT(TESTRE(全角ひらがな,"^[\u3040-\u309F]*$"))
// メッセージ
"全角ひらがなのみ"

全角カタカナ

// 検証条件
NOT(TESTRE(全角カタカナ,"^[\u30A0-\u30FF]*$"))
// メッセージ
"全角カタカナのみ"

全角文字

// 検証条件
NOT(TESTRE(全角文字,"^[^ -~。-゚]*$"))
// メッセージ
"全角文字のみ"

半角文字

// 検証条件
NOT(TESTRE(半角文字,"^[ -~。-゚]*$"))
// メッセージ
"半角文字のみ"
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0