Regex

Validates that a value matches a regular expression.

値が正規表現と一致することを検証します。
Applies to property or method
Class Regex
Validator RegexValidator

Basic Usage

Suppose you have a description field and you want to verify that it begins with a valid word character. The regular expression to test for this would be /^\w+/, indicating that you're looking for at least one or more word characters at the beginning of your string:

説明フィールドがあり、それが有効な単語文字で始まっていることを確認したいとします。これをテストする正規表現は /^\w+/ で、文字列の先頭に少なくとも 1 つ以上の単語文字を探していることを示します。
  • Attributes
    属性
  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
6
7
8
9
10
// src/Entity/Author.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Author
{
    #[Assert\Regex('/^\w+/')]
    protected $description;
}

Alternatively, you can set the match option to false in order to assert that a given string does not match. In the following example, you'll assert that the firstName field does not contain any numbers and give it a custom message:

または、特定の文字列が一致しないことをアサートするために、一致オプションを false に設定できます。次の例では、firstName フィールドに数値が含まれていないことをアサートし、カスタム メッセージを指定します。
  • Attributes
    属性
  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// src/Entity/Author.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Author
{
    #[Assert\Regex(
        pattern: '/\d/',
        match: false,
        message: 'Your name cannot contain a number',
    )]
    protected $firstName;
}

Note

ノート

As with most of the other constraints, null and empty strings are considered valid values. This is to allow them to be optional values. If the value is mandatory, a common solution is to combine this constraint with NotBlank.

他のほとんどの制約と同様に、null および空の文字列は有効な値と見なされます。これは、それらをオプションの値にできるようにするためです。値が必須の場合、一般的な解決策は、この制約と NotBlank を組み合わせることです。

Options

groups

type: array | string

タイプ: 配列 |ストリング

It defines the validation group or groups of this constraint. Read more about validation groups.

この制約の検証グループを定義します。検証グループの詳細を参照してください。

htmlPattern

type: string|boolean default: null

タイプ: 文字列|ブール値 デフォルト: null

This option specifies the pattern to use in the HTML5 pattern attribute. You usually don't need to specify this option because by default, the constraint will convert the pattern given in the pattern option into an HTML5 compatible pattern. Notably, the delimiters are removed and the anchors are implicit (e.g. /^[a-z]+$/ becomes [a-z]+, and /[a-z]+/ becomes .*[a-z]+.*).

このオプションは、HTML5 pattern 属性で使用するパターンを指定します。通常、このオプションを指定する必要はありません。これは、デフォルトで、制約が pattern オプションで指定されたパターンを HTML5 互換パターンに変換するためです。特に、区切り文字は削除され、アンカーは暗黙的です (たとえば、/^[a-z]+$/ は [a-z]+ になり、/[a-z]+/ は .*[a-z]+.* になります)。

However, there are some other incompatibilities between both patterns which cannot be fixed by the constraint. For instance, the HTML5 pattern attribute does not support flags. If you have a pattern like /^[a-z]+$/i, you need to specify the HTML5 compatible pattern in the htmlPattern option:

ただし、両方のパターンの間には、制約によって修正できない他の非互換性があります。たとえば、HTML5 パターン属性はフラグをサポートしていません。 /^[a-z]+$/i のようなパターンがある場合は、htmlPattern オプションで HTML5 互換パターンを指定する必要があります。
  • Attributes
    属性
  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
// src/Entity/Author.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Author
{
    #[Assert\Regex(
        pattern: '/^[a-z]+$/i',
        htmlPattern: '^[a-zA-Z]+$'
    )]
    protected $name;
}

Setting htmlPattern to false will disable client side validation.

htmlPattern を false に設定すると、クライアント側の検証が無効になります。

match

type: boolean default: true

タイプ: ブール デフォルト: true

If true (or not set), this validator will pass if the given string matches the given pattern regular expression. However, when this option is set to false, the opposite will occur: validation will pass only if the given string does not match the pattern regular expression.

true (または設定されていない) の場合、指定された文字列が指定されたパターンの正規表現と一致する場合、このバリデーターはパスします。ただし、このオプションを false に設定すると、反対のことが起こります。指定された文字列がパターンの正規表現と一致しない場合にのみ、検証がパスします。

message

type: string default: This value is not valid.

タイプ: 文字列 デフォルト: この値は無効です。

This is the message that will be shown if this validator fails.

これは、このバリデータが失敗した場合に表示されるメッセージです。

You can use the following parameters in this message:

このメッセージでは、次のパラメーターを使用できます。
Parameter Description
{{ value }} The current (invalid) value
{{ label }} Corresponding form field label

pattern

type: string [default option]

タイプ: 文字列 [デフォルト オプション]

This required option is the regular expression pattern that the input will be matched against. By default, this validator will fail if the input string does not match this regular expression (via the preg_match PHP function). However, if match is set to false, then validation will fail if the input string does match this pattern.

この必須オプションは、入力が照合される正規表現パターンです。デフォルトでは、入力文字列がこの正規表現と一致しない場合 (preg_matchPHP 関数による)、このバリデータは失敗します。ただし、match が false に設定されている場合、入力文字列がこのパターンに一致すると、検証は失敗します。

normalizer

type: a PHP callable default: null

タイプ: PHP 呼び出し可能デフォルト: null

This option allows to define the PHP callable applied to the given value before checking if it is valid.

このオプションを使用すると、有効かどうかを確認する前に、指定された値に適用される PHP 呼び出し可能オブジェクトを定義できます。

For example, you may want to pass the 'trim' string to apply the trim PHP function in order to ignore leading and trailing whitespace during validation.

たとえば、検証中に先頭と末尾の空白を無視するために、trim PHP 関数を適用するために「trim」文字列を渡すことができます。

payload

type: mixed default: null

タイプ: 混合 デフォルト: null

This option can be used to attach arbitrary domain-specific data to a constraint. The configured payload is not used by the Validator component, but its processing is completely up to you.

このオプションは、任意のドメイン固有のデータを制約に添付するために使用できます。構成されたペイロードは Validator コンポーネントによって使用されませんが、その処理は完全にユーザー次第です。

For example, you may want to use several error levels to present failed constraints differently in the front-end depending on the severity of the error.

たとえば、いくつかのエラー レベルを使用して、エラーの重大度に応じて、失敗した制約をフロントエンドで異なる方法で提示することができます。