Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.

Choose your framework/language

Gen1 DocsLegacy

Page updated Mar 18, 2025

フィールドレベルの検証

モデルスキーマでフィールドレベルの検証を有効にするには、フィールドに validate 関数をチェーンします。

amplify/data/resource.ts
const schema = a.schema({
Todo: a.model({
content: a.string().validate(v =>
v
.minLength(1, 'Content must be at least 1 character long')
.maxLength(100, 'Content must be less than 100 characters')
.matches('^[a-zA-Z0-9\\\\s]+$', 'Content must contain only letters, numbers, and spaces')
)
})
.authorization(allow => [allow.publicApiKey()])
});

サポートされているバリデータ

文字列バリデータ

string フィールドの場合:

バリデータ説明パラメータ
minLength文字列フィールドが指定された長さ以上であることを検証しますlength: 必要な最小長
errorMessage: オプションのカスタムエラーメッセージ
a.string().validate(v => v.minLength(5, 'String must be at least 5 characters'))
maxLength文字列フィールドが指定された長さを超えないことを検証しますlength: 許可される最大長
errorMessage: オプションのカスタムエラーメッセージ
a.string().validate(v => v.maxLength(100, 'String must be at most 100 characters'))
startsWith文字列フィールドが指定されたプレフィックスで始まることを検証しますprefix: 文字列が始まる必要があるプレフィックス
errorMessage: オプションのカスタムエラーメッセージ
a.string().validate(v => v.startsWith("prefix-", 'String must start with prefix-'))
endsWith文字列フィールドが指定されたサフィックスで終わることを検証しますsuffix: 文字列が終わる必要があるサフィックス
errorMessage: オプションのカスタムエラーメッセージ
a.string().validate(v => v.endsWith("-suffix", 'String must end with -suffix'))
matches文字列フィールドが Java正規表現エンジン を使用して指定された正規表現パターンにマッチすることを検証します。以下の注釈を参照してください。pattern: 文字列がマッチする必要がある正規表現パターン
errorMessage: オプションのカスタムエラーメッセージ
a.string().validate(v => v.matches("^[a-zA-Z0-9]+$", 'String must match the pattern'))

注釈: スキーマトランスフォーマーの内部ではJava正規表現エンジンを使用しています。TypeScriptが文字列リテラルを処理する方法のため、スキーマ内で特殊な正規表現文字を4重にエスケープする必要があります。TypeScriptの文字列リテラルでは、\\\\s と書くと文字列 \\s が生成され、これはJava正規表現エンジンの正しい形式です。\\s と書くと \s が生成され、これは無効です。したがって、matches バリデータについては、4重エスケープを使用してください。例えば: a.string().validate(v => v.matches("^[a-zA-Z0-9\\\\s]+$", 'Content must contain only letters, numbers, and spaces'))

数値バリデータ

integer および float フィールドの場合:

バリデータ説明パラメータ
gt数値フィールドが指定された値より大きいことを検証しますvalue: フィールドが大きい必要がある値
errorMessage: オプションのカスタムエラーメッセージ
a.integer().validate(v => v.gt(10, 'Must be greater than 10'))
gte数値フィールドが指定された値以上であることを検証しますvalue: フィールドが以上である必要がある値
errorMessage: オプションのカスタムエラーメッセージ
a.integer().validate(v => v.gte(10, 'Must be at least 10'))
lt数値フィールドが指定された値より小さいことを検証しますvalue: フィールドが小さい必要がある値
errorMessage: オプションのカスタムエラーメッセージ
a.integer().validate(v => v.lt(10, 'Must be less than 10'))
lte数値フィールドが指定された値以下であることを検証しますvalue: フィールドが以下である必要がある値
errorMessage: オプションのカスタムエラーメッセージ
a.integer().validate(v => v.lte(10, 'Must be at most 10'))
positive数値フィールドが正の値であることを検証しますerrorMessage: オプションのカスタムエラーメッセージa.integer().validate(v => v.positive('Must be positive'))
negative数値フィールドが負の値であることを検証しますerrorMessage: オプションのカスタムエラーメッセージa.integer().validate(v => v.negative('Must be negative'))

注釈: 現在、stringintegerfloat 型の 配列以外の フィールドの検証のみサポートしています。