文字数チェック最終更新日: 2020年10月23日

実装イメージ

リアルタイム方式でのチェックとなります。
指定したサイズを超えて入力したタイミングで、エラーを表示します。(図1,図2)

入力サイズを超えない
入力サイズを超えた時にエラーを表示

定義方法 - 数値型項目の場合

モデル項目の詳細定義ダイアログを開き、入力チェックタブの「範囲チェック」欄で指定を行います。
例えば4桁以内としたい場合は、「0-9999」と設定してください。

数値型の文字数チェック
詳細は「範囲チェック>文字数チェックとして使う」をご覧ください。

定義方法 - 数値型以外の場合

モデル項目の詳細定義ダイアログで「入力チェック」タブをクリックして開きます。
「文字数チェック」欄(①)に数値を、②のセレクトボックスで単位を設定します。
「char」は文字数で、「byte」は文字を構成するバイト数です。

②の選択肢の中で「(警告)」と書かれたものを選択すると、設定した文字数を超えて登録しようとした時に警告を表示します。
この場合、警告表示後、再度「保存」ボタンをクリックすると登録されます。

文字数チェックの指定

この欄には数字だけでなく、半角ハイフン(-)を用いた書式が利用できます。

書式 記述例 意味
数字のみ 5 5文字以内(6文字ならエラー)
-数字 -5 5文字以内(上記「数字のみ」の記述と同じ)
数字- 5- 5文字以上(4文字ならエラー)
数字1-数字2 5-8 5文字以上8文字以内

文字列項目とデータベースの関係

文字列型の項目に「文字数チェック」を指定しない場合、
型の仕様として決められている最大文字数を超える入力が行われたときにデータベースエラーが発生します。

例えば Oracle の場合、標準では文字列型項目に「varchar2(255 char)」が適用されるため、
最大文字数は 255 文字です。
従って、文字数チェック設定に 255 より小さい数値を指定することで、過入力によるデータベースエラーを回避できるようになります。

仕様・制約

  • このチェックはリアルタイムで行われます。(ブラウザのJavaScriptでチェックします。)
  • 入力エラーの状態では「保存」などのボタンを押下することはできません。
  • エラーとなった入力項目は、背景が赤となります。テキストボックスまたは日付時刻リストボックスが対象です。
  • 数値フォーマットを指定している場合、これも考慮して文字数を設定してください。(例 : 7桁の数値入力項目で、3桁区切りで「,」を入力させる場合、これを考慮して文字数の上限を 9 とする必要があります。)
  • 入力対象ではない項目に対する入力チェックを行うことはできません。具体的には計算式で求められる項目や、読み込み専用項目、参照連動項目です。

正規表現との併用

文字数チェックは内部で正規表現式に展開されます。
例えば文字数に4と設定した場合、正規表現 ".{0,4}" が設定されます。
すなわち、正規表現の設定は無効になります。

文字数チェックと正規表現を併用する場合は文字数チェックを指定せず、正規表現の設定欄で文字数チェックも兼ねる正規表現式を個別に設定してください。

そのため数値型に文字数チェックを設定すると数字以外の文字も入力できるようになります。
数値型の場合は文字数ではなく範囲チェックを指定することで対応してください。

モデル参照項目での利用

Wagbyの文字数チェックは、データベースのテーブルのカラム(列)のサイズを超えないように、事前に入力チェックを行うという機能です。

そのため、モデル参照項目(検索画面など)に文字数チェックを適用した場合は、画面に表示される「内容部」の文字数ではなく、テーブルのカラムに格納される「ID部」の文字数のチェックになります。

バイト指定の動作v8.1.1以降

入力文字数チェック(byte)のとき、"環境>データベースの文字エンコーディング情報"を利用します。この設定が空白のときは "UTF-8" 扱いとなります。[この仕様を旧方式に戻す...]

ブラウザでのリアルタイムチェック

データベースの文字エンコーディング情報が "UTF-8" の場合のみ、バイト数でチェックするようになります。それ以外は文字数でチェックします。

UTF-8 では原則は1文字3バイトですが、JIS X 0213の第3・4水準漢字の一部と絵文字では1文字4バイトとなるものがあります。