Validations
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

エクスプレッションビルダー検証のリファレンス

ライフレイ 7.4 U67+/GA67+

Liferay の Expression Builder を使用してオブジェクト フィールド検証を作成できます。 このツールには、定義済みのフィールド、演算子、関数を使用して複雑な検証ルールを迅速に定義するための統合エディターがあります。 利用可能な要素は、条件サイドパネルで閲覧できます。

重要

式ビルダーの検証は、テキスト、数値、日付、ブール値のフィールド タイプでのみ使用できます。

テキストフィールド

Liferayは、テキストおよび長いテキストフィールドに対して以下の演算子および関数を提供します。 これらのフィールドのいずれかを引数として使用できます。 一部の要素では、フィールドの値と比較する文字列値を追加することもできます (例: "foo""[A-Za-z]{1,50}")。

連結

複数の文字列またはテキストフィールドを結合し、他の検証関数で使用可能な単一の文字列を返します。

concat([textField], "[string]")

条件(テキストあり)

ユーザー入力が 1 つ以上の条件を満たしているかどうかを確認し、ブール値を返します。 この機能は、 if 文のように動作します。 各式には少なくとも 1 つの 条件 (例: textFieldName == "foo") が含まれており、 true または falseを返します。 同じ式に複数の条件を追加し、いずれの条件も満たされない場合の戻り値を決定できます (例: textFieldName == "foo"、 textFieldName == "bar"、 true、 false)。

condition([condition], [return-value])

が以下を含む(テキストあり)

テキストフィールドが特定のString値を含んでいるかどうかを確認し、ブール値を返します。 フィールドに値が含まれていない場合、 falseを返します。

contains([textField], "[string]")

含まない(テキストあり)

テキスト フィールドに特定の文字列値が含まれていないかどうかを確認し、ブール値を返します。 フィールドに値が含まれている場合、 falseを返します。

NOT(contains([textField], "[string]"))

URL である

テキストフィールドがURLであるかどうかを確認し、ブール値を返します。 フィールドがURLパターンに一致しない場合、 falseを返します。 trueを返すには、エントリーに標準的なURL要素(例: http, ://, .com)を使用する必要があります。

isURL([textField])

メールアドレスである

テキストフィールドがメールアドレスであるかどうかを確認し、ブール値を返します。 このフィールドが特定のメールアドレスまたはメールアドレスパターンに一致しない場合、 falseを返します。 trueを返すには、エントリーに標準的なメール要素を使用する必要があります(例: @gmail.com)。

isEmailAddress([textField])

が空の場合

テキストフィールドが空であるかどうかを確認し、ブール値を返します。 フィールドが空でない場合は、 falseを返します。

isEmpty([textField])

と等しい(テキストあり)

テキストフィールドが特定のString値に等しいかどうかを確認し、ブール値を返します。 それらが 等しくない場合falseを返します。

[textField] == "[string]"

等しくない (テキストあり)

テキストフィールドが特定のString値と異なるかどうかを確認し、ブール値を返します。 それらが 等しい場合falseを返します。

[textField] != "[string]"

一致

テキストフィールドが特定のString値または正規表現と一致するかどうかを確認し、ブール値を返します。 フィールドが値に一致しない場合、 falseを返します。

match([textField], "[string]")

match([textField], "[regex]")

古い値(テキスト付き)

指定されたテキスト フィールドの前の値を取得します。 この値は他の関数や演算子と共に使用できます。

oldValue([textFieldName])

数値フィールド

Liferayでは、整数、長整数、小数、小数の精度フィールドに対して以下の演算子や関数を提供します。 これらのフィールドのいずれかを引数として使用できます。 いくつかの要素では、フィールドの値と比較するための数値を追加することもできます(例:1233.1415)。

条件(数値あり)

ユーザー入力が 1 つ以上の条件を満たしているかどうかを確認し、ブール値を返します。 この機能は、 if 文のように動作します。 各式には少なくとも 1 つの 条件 (例: numericFieldName == 10) が含まれており、 true または falseを返します。 同じ式に複数の条件を追加し、いずれの条件も満たされない場合の戻り値を決定できます (例: numericFieldName == 10、numericFieldName != 100、true、false)。

condition([condition], [return-value])

が以下を含む(数値あり)

数値フィールドが特定の数値を含んでいるかどうかを確認し、ブール値を返します。 フィールドに値が含まれていない場合、 falseを返します。

contains([numericField], [number])

含まない(数値あり)

数値フィールドが特定の数値を含んでいるかどうかを確認し、ブール値を返します。 フィールドに値が含まれている場合、 falseを返します。

NOT(contains([numericField], [number]))

小数である

数値フィールドが小数であるかどうかを確認し、ブール値を返します。 フィールド が小数でない場合falseを返します。

isDecimal([numericField])

整数である

数値フィールドが整数であるかどうかを確認し、ブール値を返します。 フィールド が整数でない場合falseを返します。

isInteger([numericField])

と等しい(数値あり)

数値フィールドが特定の数値に等しいかどうかを確認し、ブール値を返します。 それらが 等しくない場合falseを返します。

[numericField] == [number]

等しくない (数値あり)

数値フィールドが特定の数値と異なるかどうかを確認し、ブール値を返します。 それらが 等しい場合falseを返します。

[numericField] != [number]

以上

数値フィールドが特定の数値より大きいかどうかを確認し、ブール値を返します。 フィールド より大きくない場合は、 falseを返します。

[numericField] > [number]

以上もしくは等しい

数値フィールドが特定の数値以上もしくは等しいかどうかを確認し、ブール値を返します。 等しくないもしくは以上の場合、 falseを返します。

[numericField] >= [number]

以下

数値フィールドが特定の数値以下かどうかを確認し、ブール値を返します。 フィールド 小さくない場合は、 falseを返します。

[numericField] < [number]

以下もしくは等しい

数値フィールドが特定の数値以下もしくは等しいかどうかを確認し、ブール値を返します。 等しくないもしくは以下の場合、 falseを返します。

[numericField] <= [number]

古い値(数値付き)

指定された数値フィールドの前の値を取得します。 この値は他の関数や演算子と共に使用できます。

oldValue([numericField])

合計

複数の数値フィールドをまとめて追加し、他の検証関数で使用可能な単一の数値を返します。

sum([numericField], [numericField])

日付フィールド

Liferayは、日付フィールドに対して以下の演算子および関数を提供します。 任意の日付フィールドを引数またはパラメーターとして使用できます。 さらに、日付フィールドと比較するための固定日付値 ("yyyy-MM-dd") を入力することもできます (例: 2020-03-19)。

日付を比較

日付フィールドの値がパラメータと同じかどうかを確認します。 フィールドがパラメータと一致しない場合は、 falseを返します。

compareDates([dateField], [parameter])

条件(日付あり)

ユーザー入力が 1 つ以上の条件を満たしているかどうかを確認し、ブール値を返します。 この機能は、 if 文のように動作します。 各式には少なくとも 1 つの 条件 (例: dateFieldName == 2020-01-01) が含まれており、 true または falseを返します。 同じ式に複数の条件を追加し、いずれの条件も満たされない場合の戻り値を決定できます (例: dateFieldName == 2020-01-01、dateFieldName != 2022-01-01、true、false)。

condition([condition], [return-value])

未来の日付

日付フィールドの値が設定されたパラメータと等しいかそれ以降であるかどうかを確認します。 もし でない場合、関数は falseを返します。

futureDates([dateField], [parameter])

例えば、

futureDates(endDate, startDate)
futureDates(endDate, "2024-01-01")

最初の例では、 endDatestartDate の値と等しいかそれ以降かどうかを確認します。 2 番目の例では、 endDate の値が 2024-01-01以降かどうかを確認します。

古い値(日付付き)

指定された日付フィールドの前の値を取得します。 この値は他の関数や演算子と共に使用できます。

oldValue([dateField])

過去の日付

日付フィールドの値が設定されたパラメータと等しいかそれ以前であるかどうかを確認します。 もし でない場合、関数は falseを返します。

pastDates([dateField], [parameter])

例えば、

pastDates(startDate, endDate)
pastDates(startDate, "2024-01-01")

最初の例では、 startDateendDate の値と等しいかそれより前かどうかを確認します。 2 番目は、 startDate の値が 2024-01-01と等しいかそれ以前かどうかを確認します。

範囲

日付フィールドの値が過去の日付で始まり、将来の日付で終わるかどうかを確認します。 日付 が範囲内 でない場合は、 falseを返します。

futureDates([dateField], [parameter])
AND
pastDates([dateField], [parameter])

例えば、

futureDates(endDate, startDate)
AND
pastDates(startDate, endDate)

これは、 endDate 値が startDate 値と等しいかそれ以降であるかどうか、また startDate 値が endDate 値と等しいか以前であるかどうかをチェックします。

数学演算子

数値フィールドには、以下のいずれの数学演算子も使用できます。

プラス ( +)

複数の数値フィールドを加算して式を作成します。

[numericField] + [numericField]

マイナス ( -)

複数の数値フィールドをお互いに減算して式を作成します。

[numericField] - [numericField]

Divided By ( / )

ある数値フィールドを別の数値フィールドで除算して式を作成します。

[numericField] / [numericField]

Multiply ( * )

複数の数値フィールドを乗算して式を作成します。

[numericField] * [numericField]

論理演算子

論理演算子は複数の要素で使用し、複数の要素から複雑な条件を集計します。 現在、式ビルダーの検証は ANDOR の演算子を提供しています。

  • AND: 依存関係を示します。

  • OR:独立した関連を示します。

次の例では、 AND節は互いに依存しているので、一緒に適用される必要があります。 これに対し、 OR 節は論理的に分離されており、相互に依存していません。

match([phoneNumberField], "^([1-9]{2}) (?:[2-8]|9[1-9])[0-9]{3}-[0-9]{4}$")
AND match([nameField], "[A-Za-z]{1,50}")
AND match([addressField], "[A-Za-z]{1,50}")
OR [numericField] == 1
OR match([lastNameField], "[A-Za-z]{1,50}")

検証例

以下の検証は一般的な例です。 これらを使用するには、 fieldName を検証するフィールドの名前に置き換えます。

名前の検証(テキストあり)

値をアルファベット文字に限定し、許容される文字数が制限されます。

match(fieldName, "[A-Za-z]{1,50}")

姓に数字を使用できます。

match(fieldName, "[A-Za-z][0-9]{1,50}")

パスワード(テキストあり)

エントリーが以下のパスワード基準を満たしているかどうかをチェックします。

  • 8文字以上
  • 一意の5文字以上
  • 1記号以上
  • 1つ以上の数値
  • スペースなし
match(fieldName, "^(?=.*[A-Za-z])(?=.*d)(?=.*[@$!%*#?&])[A-Za-zd@$!%*#?&]{8,}$")

携帯電話番号(数字あり)

エントリーが電話番号のパターンに一致するかどうかを確認します。 検証はエントリーを数字に限定し、文字数も制限し、標準的な電話番号のパターンを設定します。

match(fieldName, "^([1-9]{2}) (?:[2-8]|9[1-9])[0-9]{3}-[0-9]{4}$")

郵便番号(数値あり)

エントリーが郵便番号のパターンに一致するかどうか確認します。 検証はエントリーを数字に限定し、文字数も制限し、標準的な郵便番号のパターンを設定します。

match(fieldName, "^([1-9]{2}) (?:[2-8]|9[1-9])[0-9]{3}-[0-9]{4}$")

年齢幅の指定(日付)

エントリーが18歳以上65歳未満かどうかを確認します。

pastDates(fieldName, startsFrom, responseDate, years, -120, endsOn, responseDate, years, -18)
AND
futureDates(fieldName, startsFrom, responseDate, years, 0, endsOn, responseDate, years, 65)

関係性の検証

ライフレイ 2025年第2四半期以降

子オブジェクト フィールドが親オブジェクト フィールドと等しくないことを強制します。

name != r_whichCountry_c_countryId_name