@ValidateInternetAddress (式言語)

RFC 822 または RFC 821 アドレス形式に基づいて、インターネットアドレスが有効かどうかを確認します。

注: この @関数は R5 で新しく追加されました。

構文

@ValidateInternetAddress( [ addressFormat ] ; address )

パラメータ

[ addressFormat ]

キーワード。インターネットアドレスを検証するための形式を指定します。次のキーワードを 1 つ使用します。

[ADDRESS821]

RFC 821 アドレス形式に基づいて入力アドレスを確認するように要求します。

SStreitfeld@gazette.com

[ADDRESS822]

RFC 822 アドレス形式に基づいて入力アドレスを確認するように要求します。

"Streitfeld, Sara (Miami)" <SStreitfeld@gazette.com>

address

文字列または文字列リスト。入力アドレス文字列。

戻り値

文字列または文字列リスト。

返される可能性のあるエラーメッセージ

「入力パラメータが不正です。」

@関数 @ValidateInternetAddress に対するパラメータが無効です。

「RFC821 文法が不正です。フレーズの要求がありません。」

RFC 821 形式を必要とするアドレスにフレーズが含まれています。

「不正なフレーズまたは文字を見つけました。」

RFC 822 形式アドレスのフレーズパートが無効です。

「不正または間違った引用符が見つかりました。」

アドレス内の引用符で囲まれた文字列が無効です。

「無効なコメント/親文書の不一致が見つかりました。」

アドレス内に埋め込まれたコメントが無効です。

「ドメインが不正または違います。」

アドレス内のドメインパートが無効かまたは指定されていません。

「不正な LocalPart またはキャラクタを見つけました。」

指定されたローカルパートは無効です。

使用法

@ValidateInternetAddress は、ロケーション文書やメールフォームにあるインターネットアドレスフィールドの値が有効かどうかを確認するために使用します。この関数は、ユーザーにインターネットアドレスの入力を求めるフィールドの確認式や、インターネットアドレスが継承される計算結果フィールドで特に役立ちます。

2 番目のパラメータがリストである場合、この関数はリストの各要素ごとに処理され、戻り値は同じ数の要素を持つリストになります。

注: RFC 822 形式のインターネットアドレスのフレーズパートには、マルチバイト文字 (8 ビット文字) を使用できます。それ以外の場所では使用できません。また、グループ形式 (「Customers」など、複数のインターネットアドレスを 1 つのグループ名にまとめたもの) のアドレスは検証できません。

  1. インターネットアドレスの入力を求めるフォームを設計したとします。ユーザーは編集可能な [User_Address] フィールドに、標準の RFC 821 形式のインターネットアドレス SStreitfeld@gazette.com を入力します。

    次のフィールド確認式を入力したとします。

    validateAddress := @ValidateInternetAddress([Address821]; User_Address);
    @If(validateAddress != ""; @Failure(validateAddress); @Success)

    このフィールド確認式は、有効であることを示す空の文字列を返します。

    ただし、ユーザーが次のように入力した場合、

    "Streitfeld, Sara (Miami)" <SStreitfeld@gazette.com>

    確認式は次のエラーメッセージを返します。

    「RFC821 文法が不正です。フレーズの要求がありません。」
  2. 次の例では、「RFC821 文法が不正です。フレーズの要求がありません。」と「OK」がリストで返されます。
    User_Address1 := {"Streitfeld, Sara (Miami)" <SStreitfeld@gazette.com>};
    User_Address2 := {SStreitfeld@gazette.com};
    @Replace(@ValidateInternetAddress(
    [Address821]; User_Address1 : User_Address2); ""; "OK")
  3. 次の例では、[SendTo] フィールドのいずれかの要素がエラーメッセージになる場合に「Not OK」が返され、すべての要素が空の文字列になる場合に「OK」が返されます。
    @If(@ValidateInternetAddress([Address821]; SendTo) != ""; "Not OK"; "OK")
    注: 他の要素にエラーメッセージが含まれていてもいずれかの要素が空の文字列であれば @True が返されるため、検証済みリストで空の文字列との等価検査を行うことはできません。