

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 數值比對
<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 (含 150) 的任何訊息屬性或訊息內文屬性。