

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 数値の一致
<a name="numeric-value-matching"></a>

数値をメッセージ属性値またはメッセージ本文のプロパティ値に一致させることで、メッセージをフィルタリングできます。JSON ポリシーでは、数値を二重引用符で囲みません。フィルターには次の数値オペレーションを使用できます。

**注記**  
プレフィックスは、*文字列*一致のみがサポートされます。

## 完全一致
<a name="numeric-exact-matching"></a>

ポリシープロパティ値に `numeric` キーワードと演算子 `=` が含まれている場合、同じ名前と等しい数値を持つ任意のメッセージ属性またはメッセージ本文プロパティ値と一致します。

次のポリシーのプロパティについて考えます。

```
"price_usd": [{"numeric": ["=",301.5]}]
```

このポリシー属性は、以下のメッセージ属性のいずれとも一致します。

```
"price_usd": {"Type": "Number", "Value": 301.5}
```

```
"price_usd": {"Type": "Number", "Value": 3.015e2}
```

以下のメッセージ本文のいずれとも一致します。

```
{
   "price_usd": 301.5
}
```

```
{
   "price_usd": 3.015e2
}
```

## 「以外」のマッチング
<a name="numeric-anything-but-matching"></a>

ポリシープロパティ値にキーワード `anything-but` が含まれている場合、そのキーワードは、ポリシープロパティ値を*含まない*任意のメッセージ属性またはメッセージ本文プロパティ値と一致します。

次のポリシーのプロパティについて考えます。

```
"price": [{"anything-but": [100, 500]}]
```

このポリシー属性は、以下のメッセージ属性のいずれとも一致します。

```
"price": {"Type": "Number", "Value": 101}
```

```
"price": {"Type": "Number", "Value": 100.1}
```

以下のメッセージ本文のいずれとも一致します。

```
{
   "price": 101
}
```

```
{
   "price": 100.1
}
```

さらに、次のメッセージ属性にも一致します (これは `100` でも `500` *でもない*値を含むためです)。

```
"price": {"Type": "Number.Array", "Value": "[100, 50]"}
```

また、次のメッセージ本文にも一致します (これは `100` でも `500` *でもない*値が含まれるためです)。

```
{
   "price": [100, 50]
}
```

ただし、次のメッセージ属性とは一致しません。

```
"price": {"Type": "Number", "Value": 100}
```

また、次のメッセージ本文にも一致しません。

```
{
   "price": 100
}
```

## 値範囲の一致
<a name="numeric-value-range-matching"></a>

数値ポリシープロパティには、`=` 演算子に加えて、次の `<`、`<=`、`>`、および `>=` を含めることができます。

次のポリシーのプロパティについて考えます。

```
"price_usd": [{"numeric": ["<", 0]}]
```

負の数値を持つ任意のメッセージ属性またはメッセージ本文プロパティと一致します。

別のポリシー属性について考えます。

```
"price_usd": [{"numeric": [">", 0, "<=", 150]}]
```

最大 150 までの正の数を持つメッセージ属性またはメッセージ本文プロパティと一致します。