> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arc.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 変換フォーマッタ

> ArcScript で文字列値の変換、置換、分割、再構成を行うフォーマッタ。

## concat(\[newString])

フォーマッタにパイプで渡された値と、フォーマッタに渡されたパラメータを連結します。

* **newString**：属性に追加する文字列。

## insert(integer\_index, string)

指定した文字列を、指定したインデックスに挿入します。

* **index**：新しい文字列を挿入する、元の値内の位置のゼロベースのインデックス。
* **string**：元の値に挿入する文字列。

## regexreplace(pattern, newvalue\[, startindex])

入力文字列を *pattern* で指定した正規表現パターンで検索し、各出現箇所を *newvalue* で置き換えます。

* **pattern**：置き換える正規表現パターン。
* **newvalue**：置換に使用する値。
* **startindex**：指定した場合、検索は文字列内のこの位置から始まります（言い換えると、フォーマッタは *startindex* より前に出現する *pattern* のインスタンスを無視します）。
* **empty\_match\_all**：正規表現パターンを置き換えた結果が空の値になる場合、代わりに元の文字列が返されます（デフォルトは `true`）。

### 例

```xml theme={null}
<arc:set attr="myString" value="The cost of the item is $12.98." />
<arc:set attr="decimalPattern" value="\[0-9\]+\.?\[0-9\]*" />
<arc:set attr="updatedListing" value="[myString | regexreplace([decimalPattern],'10.99')]" />
<!-- updatedListing has the value: The cost of the item is $10.99 -->
```

## remove(integer\_index\[, integer\_count])

最初のパラメータで指定したゼロベースのインデックスから始めて、属性値から文字を削除します。

* **index**：文字の削除を開始する位置。
* **count**：削除する文字数（任意）。指定しない場合は、指定したインデックスから始まるすべての文字が削除されます。

## replace(oldvalue, newvalue\[, ishex])

入力文字列内で *oldvalue* が出現するたびにそれを検索して削除し、*newvalue* で置き換えます。

* **oldvalue**：置き換える元の値。
* **newvalue**：置換に使用する値。
* **ishex**：*oldvalue* パラメータが、置き換える文字の16進数表現であるかどうかを示します（デフォルトは `false`）。
* **empty\_match\_all**：*oldvalue* を置き換えた結果が空文字列になる場合、代わりに元の値が返されます（デフォルトは `true`）。

### 例

```xml theme={null}
<arc:set attr="myString" value="I hope you have a wonderful day." />
<arc:set attr="honestString" value="[myString | replace('you', 'I')]" />
<!-- honestString holds the value: I hope I have a wonderful day. -->
<arc:set attr="anotherString" value="[myString | replace(20, '-', true)]" />
<!-- anotherString holds the value: I-hope-you-have-a-wonderful-day. -->
```

## rsplit(delimiter, integer\_index)

属性値が表す文字列を、最初のパラメータで区切られたトークンに分割し、2番目のパラメータで指定したインデックスのトークンを返します。右から数えます。

* **delimiter**：文字列をトークンに分割するための区切り文字として使用する文字列。
* **index**：要求するトークンのインデックス。最初のトークンはインデックス1です。

## split(delimiter, indextoreturn, trimresult, removeempty)

*delimiter* が出現するたびに入力文字列を分割して部分文字列の集合にし、指定した *index* の文字列を返します。

* **indextoreturn**：指定した場合、部分文字列の集合にインデックスが付けられ、いずれかの部分文字列が返されます（例えば、*indextoreturn* に `1` を渡すと、分割の結果得られた最初の部分文字列が返されます）。
* **trimresult**：デフォルトでは、返される値は先頭および末尾の空白がトリムされます。部分文字列内のすべての文字を返すには、これを `false` に設定します。
* **removeempty**：デフォルトでは、フォーマッタは空の要素を削除しません。これらを削除するには、これを `true` に設定します。

### 例

```xml theme={null}
<arc:set attr="myName" value="Walter White" />
<arc:set attr="firstName" value="[myName | split(' ',1)]" />
<!-- firstName contains the value: Walter -->
```

## striphtml()

HTML マークアップを削除した文字列を返します。

## substring(index\[, length])

入力文字列値の部分文字列を返します。*index* の値から始まり、*length* 文字後に終わります。*length* が指定されない場合、部分文字列は元の文字列の末尾で終わります。

### 例

```xml theme={null}
<!-- parse out the characters before the first comma, combining substring() with find() -->

<arc:set attr="myString" value="Luke, I am your father". />
<arc:set attr="commaPosition" value="[myString | find(',')]" />
<arc:set attr="introClause" value="[myString | substring(0, [commaPosition])]" />
<!-- introClause has the value: Luke -->
```

## toalpha()

文字列内の文字（アルファベット）のみを返します。

## toalphanum()

文字列内の英数字のみを返します。

## truncate(integer\_count)

属性値を、パラメータで指定した文字数に切り詰めます。

* **count**：結果の文字列内の文字数。
