項目検証プラグインで、電話番号やメールアドレスなどのよくあるチェックを行ってみます。
概要
項目検証プラグインのカスタムバリデーション機能で、よく使われるチェックを行います。
TESTRE 関数と正規表現
TESTRE 関数は、文字列の検索(正規表現)で、文字の有無(true, false)を返します。
正規表現を使うと文字列をパターンでチェックできます。
3桁の数字チェック例
3桁の数字以外をエラー
※必須項目の場合は、必須チェックが優先されます。
// 検証条件
NOT(TESTRE(文字列,"^[0-9]{3}$"))
// メッセージ
"3桁の数字に問題があります"
- 「3桁数字」以外をエラーにします。
- NOT( : 否定(パターンに一致しないもの)
- TESTRE( : 文字列を正規表現でチェック(パターンに一致するもの)
- 文字列 : フィールドコード
- "^[0-9]{3}$" : 正規表現のパターン
- ^ : 文字列の先頭
- [0-9]{3} : 数字3桁
- $ : 文字列の最後
- TESTRE( : 文字列を正規表現でチェック(パターンに一致するもの)
- NOT( : 否定(パターンに一致しないもの)
入力時のみ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桁
- $ : 文字列の最後
- TESTRE( : 文字列を正規表現でチェック(パターンに一致するもの)
- NOT( : 否定(パターンに一致しないもの)
電話番号
// 検証条件
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(半角文字,"^[ -~。-゚]*$"))
// メッセージ
"半角文字のみ"