文字列関数 string

パーソナライゼーションエディターで文字列関数を使用する方法を説明します。

キャメルケース camelCase

camelCase 関数は、文字列の各単語の最初の文字を大文字にします。

構文

{%= camelCase(string)%}

次の関数は、プロファイルの住所の最初の文字を大文字にします。

{%= camelCase(profile.homeAddress.street) %}

次の場所の文字コード char-code-at

charCodeAt 関数は、JavaScript の charCodeAt 関数と同様に、文字の ASCII 値を返します。 文字列と整数(文字の位置を定義する)を入力引数として受け取り、対応する ASCII 値を返します。

構文

{%= charCodeAt(string,int) %}: int

次の関数は、o の ASCII 値(111)を返します。

{%= charCodeAt("some", 1)%}

連結 concate

concat関数は2つ以上の文字列を連結し、結果の文字列を返します。

構文

{%= concat(string1, string2, ...) %}

次の関数は、複数の文字列を1つの値に結合します。

{%= concat("Hello", " ", "World") %}

「Hello World」を返します。

次を含む contains

contains 関数は、文字列が指定の部分文字列を含んでいるかどうかを判定するために使用されます。

構文

{%= contains(STRING_1, STRING_2, CASE_SENSITIVE) %}
引数
説明
STRING_1
チェックの実行対象となる文字列です。
STRING_2
最初の文字列内で検索する文字列です。
CASE_SENSITIVE
チェックで大文字と小文字が区別されるかどうかを指定するオプションのパラメーターです。 使用可能な値:true(デフォルト)または false。

  • 次の関数は、プロファイルの名に A (大文字または小文字)が含まれているかどうかを確認します。 この場合は「true」が返され、そうでない場合は「false」が返されます。

    code language-sql
    {%= contains(profile.person.name.firstName, "A", false) %}
    
  • 次のクエリでは、大文字と小文字を区別したうえで、人物のメールアドレスが「2010@gm」という文字列を含んでいるかどうかを判定します。

    code language-sql
    {%= contains(profile.person.emailAddress,"2010@gm") %}
    

次を含まない doesNotContain

doesNotContain 関数は、文字列が指定の部分文字列を含んでいないかどうかを判定するために使用されます。

構文

{%= doesNotContain(STRING_1, STRING_2, CASE_SENSITIVE)%}
引数
説明
STRING_1
チェックの実行対象となる文字列です。
STRING_2
最初の文字列内で検索する文字列です。
CASE_SENSITIVE
チェックで大文字と小文字が区別されるかどうかを指定するオプションのパラメーターです。 使用可能な値:true(デフォルト)または false。

次のクエリでは、大文字と小文字を区別したうえで、人物のメールアドレスが「2010@gm」という文字列を含んでいないかどうかを判定します。

{%= doesNotContain(profile.person.emailAddress,"2010@gm")%}

次で終わらない doesNotEndWith

doesNotEndWith 関数は、文字列が指定の部分文字列で終わらないかどうかを判定するために使用されます。

構文

{%= doesNotEndWith(STRING_1, STRING_2, CASE_SENSITIVE)%}
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列内で検索する文字列です。
{CASE_SENSITIVE}
チェックで大文字と小文字が区別されるかどうかを指定するオプションのパラメーターです。 使用可能な値:true(デフォルト)または false。

次のクエリでは、大文字と小文字を区別したうえで、人物のメールアドレスが「.com」で終わらないかどうかを判定します。

doesNotEndWith(person.emailAddress,".com")

次で始まらない doesNotStartWith

doesNotStartWith 関数は、文字列が指定の部分文字列で始まらないかどうかを判定するために使用されます。

構文

{%= doesNotStartWith(STRING_1, STRING_2, CASE_SENSITIVE)%}
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列内で検索する文字列です。
{CASE_SENSITIVE}
チェックで大文字と小文字が区別されるかどうかを指定するオプションのパラメーターです。 使用可能な値:true(デフォルト)または false。

次のクエリでは、大文字と小文字を区別したうえで、人物の名前が「Joe」で始まらないかどうかを判定します。

{%= doesNotStartWith(person.name,"Joe")%}

エンコード 64 encode64

encode64 関数は、個人情報(PI)を URL などに含める必要がある場合に、個人情報を保持する文字列をエンコードするために使用します。

構文

{%= encode64(string) %}

デコード 64 decode64

decode64関数は、Base64でエンコードされた文字列をデコードします。 入力が有効でない場合は、元の入力文字列は変更されずに返されます。

構文

{%= decode64(string) %}
引数
説明
string
デコードするBase64でエンコードされた文字列。

{%= decode64("aGVsbG8=") %}

この式はhelloを返します。

次で終わる endsWith

endsWith 関数は、文字列が指定の部分文字列で終わるかどうかを判定するために使用されます。

構文

{%= endsWith(STRING_1, STRING_2, CASE_SENSITIVE) %}
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列内で検索する文字列です。
{CASE_SENSITIVE}
チェックで大文字と小文字が区別されるかどうかを指定するオプションのパラメーターです。 使用可能な値:true(デフォルト)または false。

次のクエリでは、大文字と小文字を区別したうえで、人物のメールアドレスが「.com」で終わるかどうかを判定します。

{%= endsWith(person.emailAddress,".com") %}

次に等しい equals

equals 関数は、文字列が指定の文字列に等しいかどうかを判定するために使用します。

構文

{%= equals(STRING_1, STRING_2) %}
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列と比較する文字列です。

次のクエリでは、大文字と小文字を区別したうえで、人物の名前が「John」かどうかを判定します。

{%=equals(profile.person.name,"John") %}

大文字と小文字を区別しない equalsIgnoreCase

equalsIgnoreCase 関数は、大文字と小文字を区別せずに、文字列が指定の文字列に等しいかどうかを判定するために使用します。

構文

{%= equalsIgnoreCase(STRING_1, STRING_2) %}
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列と比較する文字列です。

次のクエリでは、大文字と小文字を区別せずに、名前が「John」かどうかを判定します。

{%= equalsIgnoreCase(profile.person.name,"John") %}

大文字と小文字を区別 equals-any-ignore-case

equalsAnyIgnoreCase関数は、文字列が指定された比較値に等しいかどうかをチェックし、大文字と小文字の違いを無視します。

構文

{%= equalsAnyIgnoreCase(string, string, ...) %}
引数
説明
string
比較するSource文字列。
string, ...
1から10個の比較文字列。

{%= equalsAnyIgnoreCase("Icon", "icon", "ambassador", "luminary") %}

true を返します。

電子メールドメインを抽出 extractEmailDomain

extractEmailDomain 関数は、メールアドレスのドメインを抽出するために使用します。

構文

{%= extractEmailDomain(string) %}

次のクエリは、個人のメールアドレスのメールドメインを抽出します。

{%= extractEmailDomain(profile.personalEmail.address) %}

通貨の書式設定 format-currency

formatCurrency 関数は、2 番目の引数で文字列として渡されたロケールに応じて、任意の数値を対応する言語に依存する通貨表現に変換するために使用します。

構文

{%= formatCurrency(number/double,string) %}: string

このクエリは £56.00 を返します

{%= formatCurrency(56L,"en_GB") %}

URL ホストを取得 get-url-host

getUrlHost 関数は、URL のホスト名を取得するために使用されます。

構文

{%= getUrlHost(string) %}: string

{%= getUrlHost("https://www.myurl.com/contact") %}

「www.myurl.com」を返します

URL パスを取得 get-url-path

getUrlPath 関数は、URL のドメイン名の後のパスを取得するために使用されます。

構文

{%= getUrlPath(string) %}: string

{%= getUrlPath("https://www.myurl.com/contact.html") %}

「/contact.html」を返します

URL プロトコルを取得 get-url-protocol

getUrlProtocol 関数は、URL のプロトコルを取得するために使用されます。

構文

{%= getUrlProtocol(string) %}: string

{%= getUrlProtocol("https://www.myurl.com/contact.html") %}

「http」を返します

URL フラグメントを取得 get-url-fragment

getUrlFragment関数は、URLのフラグメント部分を取得するために使用されます。

構文

{%= getUrlFragment(string) %}: string

{%= getUrlFragment("https://www.myurl.com/contact.html#faq") %}

「faq」を返します

クエリパラメーターの追加 append-query-params

appendQueryParams関数は、URL内のクエリパラメーターを追加または置換し、任意のフラグメントの前にパラメーターを挿入します。

構文

{%= appendQueryParams(url, key, value) %}
引数
説明
url
更新するURL。
key
追加または置換するクエリパラメーターキー。
value
キーに設定するクエリパラメーター値。

{%= appendQueryParams("https://example.com/page", "utm_source", "email") %}

https://example.com/page?utm_source=email を返します。

インデックス index-of

indexOf 関数は、2 番目のパラメーターが最初に現れる(最初の引数内の)位置を返すために使用されます。 一致するものがない場合は「-1」を返します。

構文

{%= indexOf(STRING_1, STRING_2) %}: integer
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初のパラメーターで検索する文字列

{%= indexOf("hello world","world" ) %}

6 を返します。

空である isEmpty

isEmpty 関数は、文字列が空かどうかを判断するために使用します。

構文

{%= isEmpty(string) %}

次の関数は、プロファイルの携帯電話番号が空の場合、「true」を返します。 それ以外の場合は、「false」を返します。

{%= isEmpty(profile.mobilePhone.number) %}

空でない is-not-empty

isNotEmpty 関数は、文字列が空でないかどうかを判定するために使用されます。

構文

{= isNotEmpty(string) %}: boolean

次の関数は、プロファイルの携帯電話番号が空の場合、「true」を返します。 それ以外の場合は、「false」を返します。

{%= isNotEmpty(profile.mobilePhone.number) %}

結合 join

join関数は、区切り記号を使用して、配列の要素を1つの文字列に連結します。

構文

{%= join(array, separator) %}
引数
説明
array
連結する配列。
separator
各配列要素の間に挿入された文字列。

{%= join(["red", "green", "blue"], ",") %}

red,green,blue を返します。

最後のインデックス last-index-of

lastIndexOf 関数は、2 番目のパラメーターが最後に現れる(最初の引数内の)位置を返すために使用されます。 一致するものがない場合は「-1」を返します。

構文

{= lastIndexOf(STRING_1, STRING_2) %}: integer
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初のパラメーターで検索する文字列

{%= lastIndexOf("hello world","o" ) %}

7 を返します。

左トリミング leftTrim

leftTrim 関数は、文字列の先頭から空白を削除するために使用します。

構文

{%= leftTrim(string) %}

長さ length

length 関数は、文字列または式の文字数を取得するために使用します。

構文

{%= length(string) %}

次の関数は、プロファイルの市区町村名の長さを返します。

{%= length(profile.homeAddress.city) %}

類似 like

like 関数は、文字列が指定のパターンと一致するかどうかを判定するために使用されます。

構文

{%= like(STRING_1, STRING_2) %}
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}

最初の文字列列と照合される式です。 式の作成に使用できる特殊文字として、%_ の 2 つがサポートされています。

  • % は、0 個以上の文字を表すために使用されます。
  • _ は、1 文字を表すために使用されます。

次のクエリでは、「es」というパターンを含む住所の市区町村をすべて取得します。

{%= like(profile.homeAddress.city, "%es%")%}

小文字 lower

lowerCase 関数は、文字列を小文字に変換します。

構文

{%= lowerCase(string) %}

この関数は、プロファイルの名を小文字に変換します。

{%= lowerCase(profile.person.name.firstName) %}

一致 matches

matches 関数は、文字列が特定の正規表現と一致するかどうかを判定するために使用されます。 正規表現でのパターンマッチングについて詳しくは、こちらのドキュメントを参照してください。

構文

{%= matches(STRING_1, STRING_2) %}

次のクエリでは、大文字と小文字を区別せずに、人の名前が「John」で始まるかどうかを判定します。

{%= matches(person.name.,"(?i)^John") %}

マスク mask

Mask 関数は、文字列の一部を「X」の文字に置き換えるために使用されます。

構文

{%= mask(string,integer,integer) %}

次のクエリでは、「123456789」文字列を「X」の文字に置き換えます(最初と最後の 2 文字を除きます)。

{%= mask("123456789",1,2) %}

このクエリは 1XXXXXX89 を返します。

MD5 md5

md5 関数は、文字列の md5 ハッシュを計算して返すために使用されます。

構文

{%= md5(string) %}: string

{%= md5("hello world") %}

「5eb63bbbe01eeed093cb22bb8f5acdc3」を返します。

次と等しくない notEqualTo

notEqualTo 関数は、文字列が指定の文字列に等しくないかどうかを判定するために使用されます。

構文

{%= notEqualTo(STRING_1, STRING_2) %}
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列と比較する文字列です。

次のクエリでは、大文字と小文字を区別したうえで、人物の名前が「John」でないかどうかを判定します。

{%= notEqualTo(profile.person.name,"John") %}

大文字と小文字を区別しない not-equal-with-ignore-case

notEqualWithIgnoreCase 関数は、大文字と小文字を区別せずに、2 つの文字列を比較するために使用されます。

構文

{= notEqualWithIgnoreCase(STRING_1,STRING_2) %}: boolean
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列と比較する文字列です。

次のクエリでは、大文字と小文字を区別せずに、ユーザーの名前が「john」でないかどうかを判定します。

{%= notEqualTo(profile.person.name,"john") %}

正規表現グループ regexGroup

Group 関数は、指定された正規表現に基づいて特定の情報を抽出するために使用されます。

構文

{%= regexGroup(STRING, EXPRESSION, GROUP) %}
引数
説明
{STRING}
チェックの実行対象となる文字列です。
{EXPRESSION}
最初の文字列列と照合する正規表現です。
{GROUP}
照合する式のグループです。

次のクエリは、メールアドレスからドメイン名を抽出するために使用します。

{%= regexGroup(emailAddress,"@(\\w+)", 1) %}

置換 replace

replace 関数は、文字列内の特定の部分文字列を別の部分文字列で置き換えるために使用します。

構文

{%= replace(STRING_1,STRING_2,STRING_3) %}:string
引数
説明
{STRING_1}
部分文字列を置き換える必要がある文字列です。
{STRING_2}
置き換える部分文字列。
{STRING_3}
置換する部分文字列。

{%= replace("Hello John, here is your monthly newsletter!","John","Mark") %}

「Hello Mark, here is your monthly newsletter!」を返します。

すべて置換 replaceAll

replaceAll 関数は、「regex」式に一致するテキストのすべてのサブ文字列を、指定されたリテラルの「replacement」文字列に置き換えるために使用します。 正規表現には「\」と「+」の特別な処理があり、すべての正規表現は PQL エスケープ戦略に従います。 置換は、文字列の先頭から末尾に向かって行われます。例えば、文字列「aaa」の「aa」を「b」に置き換えると、「ab」ではなく「ba」になります。

構文

{%= replaceAll(string,string,string) %}
NOTE
2 番目の引数として使用される式が特殊な正規表現文字である場合は、2 つのバックスラッシュ(//)を使用します。 特殊な正規表現文字は次のとおりです:[.、+、*、?、^、$、(、)、[、]、{、}、|、]
詳しくは、Oracle ドキュメントを参照してください。
例 – 基本的な置換
code language-sql
{%= replaceAll("Hello World","World","AJO") %}

Hello AJO を返します。

実際の例 – replaceAll後の変数の再割り当て

replaceAllは新しい文字列を返しますが、元の値は変更しません。 クリーニングされた文字列を複数回再利用するには、{% let %}を使用して結果を変数に割り当てます。

code language-handlebars
{% let cleanName = replaceAll(profile.person.name.firstName, "[^a-zA-Z]", "") %}
Hello {{cleanName}}, your personalized offer is ready.
Your code: WELCOME-{%= upperCase(cleanName) %}

{% let %}割り当てにはreplaceAllの結果が保存されるため、関数を再度呼び出さずに{{cleanName}}として参照できます。 これは正しいパターンです。自分自身の内部でreplaceAllを連鎖させたり、同じプロファイル変数に再割り当てしようとしたりすることはサポートされていません。

右トリミング rightTrim

rightTrim 関数は、文字列の末尾から空白を削除します。

構文

{%= rightTrim(string) %}

SHA256 sha256

SHA256 関数は、文字列の sha256 ハッシュを計算して返します。

構文

{%= sha256(string) %} : string

{%= sha256("Eliechxh")%}

戻り値:0b0b207880b999adaad6231026abf87caa30760b6f326b21727b61139332257d

分割 split

split 関数は、文字列を特定の文字で分割する場合に使用します。

構文

{%= split(string,string) %}

次で始まる startsWith

startsWith 関数は、文字列が指定の部分文字列で始まるかどうかを判定するために使用されます。

構文

{%= startsWith(STRING_1, STRING_2, CASE_SENSITIVE) %}
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列内で検索する文字列です。
{CASE_SENSITIVE}
チェックで大文字と小文字が区別されるかどうかを指定するオプションのパラメーターです。 デフォルトでは true に設定されています。

次のクエリでは、大文字と小文字を区別したうえで、人物の名前が「Joe」で始まるかどうかを判定します。

{%= startsWith(person.name,"Joe") %}

文字列を日付に string-to-date

stringToDate 関数は、文字列値を日時値に変換します。 日時の文字列表現とフォーマッターの文字列表現の 2 つの引数を取ります。

構文

{= stringToDate("date-time value","formatter" %}

{= stringToDate("2023-01-10 23:13:26", "yyyy-MM-dd HH:mm:ss") %}

文字列を整数に string-to-integer

string_to_integer 関数は、文字列値を整数値に変換するために使用されます。

構文

{= string_to_integer(string) %}: int

文字列から数値へ string-to-number

stringToNumber 関数は、文字列を数値に変換するために使用されます。 無効な入力の出力と同じ文字列を返します。

構文

{%= stringToNumber(string) %}: double

部分文字列 sub-string

Count string関数は、開始インデックスと終了インデックスの間の文字列式のサブ文字列を返すために使用されます。
構文

{= substr(string, integer, integer) %}: string

タイトルケース titleCase

titleCase 関数は、文字列の各単語の最初の文字を大文字にするために使用します。

構文

{%= titleCase(string) %}

その人物が「Washington high street」に住んでいる場合、この関数は「Washington high street」を返します。

{%= titleCase(profile.person.location.Street) %}

ブール値に to-bool

toBool 関数は、引数の値を、型に応じてブール値に変換するために使用されます。

構文

{= toBool(string) %}: boolean

日時に to-date-time

toDateTime 関数は、文字列を日付型に変換するために使用されます。 無効な入力に対する出力として、エポック日付を返します。

構文

{%= toDateTime(string, string) %}: date-time

終了時刻のみ to-date-time-only

toDateTimeOnly 関数は、引数の値を日時のみの値に変換するために使用されます。 無効な入力に対する出力として、エポック日付を返します。 この関数は、文字列、日付、長さおよび整数のフィールドタイプを受け入れます。

構文

{%= toDateTimeOnly(string/date/long/int) %}: date-time

トリミング trim

trim 関数は、文字列の先頭と末尾にあるすべての空白を削除します。

構文

{%= trim(string) %}

大文字 upper

upperCase 関数は、文字列を大文字に変換します。

構文

{%= upperCase(string) %}

この関数は、プロファイルの姓を大文字に変換します。

{%= upperCase(profile.person.name.lastName) %}

URL デコード url-decode

urlDecode 関数は、URL エンコードされた文字列をデコードするために使用されます。

構文

{%= urlDecode(string) %}: string

URL エンコード url-encode

Count only null 関数は、文字列を URL エンコードするために使用されます。

構文

{%= urlEncode(string) %}: string
recommendation-more-help
journey-optimizer-help