Funzioni stringa string-functions
Le funzioni stringa consentono di manipolare e utilizzare valori di testo all’interno delle espressioni di percorso. Queste funzioni sono essenziali per l’elaborazione, la convalida, la trasformazione e l’analisi del testo nei percorsi del cliente.
Utilizza le funzioni stringa quando devi:
- Concatena e combina più valori di testo (concat)
- Cerca pattern o sottostringhe di testo specifiche (contain, containIgnoreCase, indexOf, lastIndexOf, matchRegExp)
- Confronta le stringhe con corrispondenza con distinzione tra maiuscole e minuscole o senza distinzione tra maiuscole e minuscole (equalIgnoreCase, notEqualIgnoreCase)
- Controlla se la stringa inizia e termina (startWith, startWithIgnoreCase, endWith, endWithIgnoreCase)
- Estrai parti di testo utilizzando operazioni di sottostringa (substr)
- Trasforma il testo in maiuscolo o minuscolo (upper, lower, trim)
- Verifica se le stringhe sono vuote o contengono valori specifici (isEmpty, isNotEmpty)
- Sostituisci modelli di testo con nuovi valori (replace, replaceAll)
- Dividi le stringhe in matrici per ulteriore elaborazione (split)
- Ottieni la lunghezza della stringa (lunghezza) o genera identificatori univoci (uuid)
Le funzioni stringa forniscono funzionalità complete di manipolazione del testo, consentendo un’elaborazione sofisticata dei dati e una logica condizionale basata sul contenuto di testo nelle espressioni di percorso.
concatena concat
Concatena due parametri di stringa o un elenco di stringhe.
concat(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| Elenco | listString |
| stringa | stringa |
concat(<string>,<string>)
concat(<listString>)
Restituisce una stringa.
concat("Hello","World")
Restituisce “HelloWorld”.
concat(["Hello"," ","World"])
Restituisce “Hello World”.
contain contain
Controlla se la seconda stringa di argomento è contenuta nella prima stringa di argomento.
contain(<parameters>)- stringa
contain(<string>,<string>)
Restituisce un valore booleano.
contain("rowing is great", "great")
Restituisce true.
containIgnoreCase containIgnoreCase
Controlla se la seconda stringa di argomento è contenuta nella prima stringa di argomento, senza tenere conto della distinzione tra maiuscole e minuscole.
containIgnoreCase(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| stringa | stringa |
| stringa cercata | stringa |
containIgnoreCase(<string>,<string>)
Restituisce un valore booleano.
containIgnoreCase("rowing is great", "GREAT")
Restituisce true.
endWith endWith
Restituisce true se il secondo parametro è un suffisso del primo.
endWith(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| stringa | stringa |
| suffisso | stringa |
endWith(<string>,<string>)
Restituisce un valore booleano.
endWith("Hello World", "World")
Restituisce true.
endWith("Hello World", "Hello")
Restituisce false.
endWithIgnoreCase endWithIgnoreCase
Controlla se la stringa del primo argomento termina con una stringa specifica (stringa del secondo argomento), senza tenere conto delle maiuscole/minuscole.
endWithIgnoreCase(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| stringa | stringa |
| suffisso | stringa |
endWithIgnoreCase(<string>,<string>)
Restituisce un valore booleano.
endWithIgnoreCase("rowing is great", "AT")
Restituisce true.
equalIgnoreCase equalIgnoreCase
Confronta la prima stringa di argomento con la seconda stringa di argomento, ignorando le considerazioni relative alle maiuscole/minuscole.
equalIgnoreCase(<parameters>)- stringa
equalIgnoreCase(<string>,<string>)
Restituisce un valore booleano.
equalIgnoreCase("rowing is great", "rowing is GREAT")
Restituisce true.
indexOf indexOf
Restituisce la posizione della prima occorrenza del secondo parametro nel primo argomento. Restituisce -1 se non viene trovata alcuna corrispondenza.
indexOf(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| stringa | Stringa |
| valore specificato | Stringa |
indexOf(<string>,<string>)
Restituisce un numero intero.
indexOf("Hello", "l")
Restituisce 2.
Spiegazione:
In “Hello”, la prima occorrenza di “l” è nella posizione 2.
IsEmpty isEmpty
Restituisce true se la stringa nel parametro non contiene alcun carattere.
isEmpty(<parameters>)- stringa
isEmpty(<string>)
Restituisce un valore booleano.
isEmpty("")
Restituisce true.
isEmpty("Hello World")
Restituisce false.
isEmpty(<null>)
Restituisce false.
isNotEmpty isNotEmpty
Restituisce true se la stringa nel parametro non è vuota.
isNotEmpty(<parameters>)- stringa
isNotEmpty(<string>)
Restituisce un valore booleano.
isNotEmpty("")
Restituisce false.
isNotEmpty("hello")
Restituisce true.
lastIndexOf lastIndexOf
Restituisce la posizione (nel primo argomento) dell’ultima occorrenza del secondo parametro. Restituisce -1 se non viene trovata alcuna corrispondenza.
lastIndexOf(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| stringa | Stringa |
| valore specificato | Stringa |
lastIndexOf(<string>,<string>)
Restituisce un numero intero.
lastIndexOf("Hello", "l")
Restituisce 3.
Spiegazione:
In “Hello”, l’ultima occorrenza di “l” è nella posizione 3.
lunghezza length
Restituisce il numero di caratteri dell’espressione stringa nel parametro.
length(<parameters>)- stringa
length(<string>)
Restituisce un numero intero.
length("Hello World")
Restituisce 11.
lower lower
Restituisce una versione in minuscolo del parametro.
lower(<parameter>)- stringa
lower(<string>)
Restituisce una stringa.
lower("A")
Restituisce “a”.
matchRegExp matchRegExp
Restituisce true se la stringa nel primo parametro corrisponde all’espressione regolare nel secondo parametro. Per ulteriori informazioni, vedere questa pagina.
matchRegExp(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| stringa | stringa |
| regexp | stringa |
matchRegExp(<string>,<string>)
Restituisce un valore booleano.
matchRegExp("12345", "\\d+")
Restituisce true.
notEqualIgnoreCase notEqualIgnoreCase
Verificare se la prima stringa di argomento con la seconda stringa di argomento è diversa, ignorando le considerazioni relative alle maiuscole e minuscole.
notEqualIgnoreCase(<parameters>)- stringa
notEqualIgnoreCase(<string>,<string>)
Restituisce un valore booleano.
notEqualIgnoreCase(@event{iOSPushPermissionAllowed.device.model}, "iPad")replace replace
Sostituisce la prima occorrenza corrispondente alla stringa di destinazione con la stringa di sostituzione nella stringa di base.
La sostituzione procede dall’inizio della stringa alla fine, ad esempio, sostituendo “aa” con “b” nella stringa “aaa” si otterrà “ba” invece di “ab”.
replace(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parametro | Tipo |
| base | stringa |
| target | stringa (RegExp) |
| sostituzione | stringa |
replace(<base>,<target>,<replacement>)
Restituisce una stringa.
replace("Hello World", "l", "x")
Restituisce “Hexlo World”.
Esempio con RegExp:
Poiché il parametro di destinazione è un RegExp, a seconda della stringa che si desidera sostituire, potrebbe essere necessario eseguire l’escape di alcuni caratteri. Ecco un esempio:
- stringa da valutare:
|OFFER_A|OFFER_B - fornito da un attributo di profilo
#{ExperiencePlatform.myFieldGroup.profile.myOffers} - Stringa da sostituire:
|OFFER_A - Stringa sostituita da:
'' - Aggiungere
\\prima del carattere|.
L’espressione è:
replace(#{ExperiencePlatform.myFieldGroup.profile.myOffers}, '\\|OFFER_A', '')
La stringa restituita è: |OFFER_B
Puoi anche creare la stringa da sostituire da un dato attributo:
replace(#{ExperiencePlatform.myFieldGroup.profile.myOffers}, '\\|' + #{ExperiencePlatform.myFieldGroup.profile.myOfferCode}, '')
replaceAll replaceAll
Sostituisce tutte le occorrenze che corrispondono alla stringa di destinazione con la stringa di sostituzione nella stringa di base.
La sostituzione procede dall’inizio della stringa alla fine, ad esempio, sostituendo “aa” con “b” nella stringa “aaa” si otterrà “ba” invece di “ab”.
replaceAll(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parametro | Tipo |
| base | stringa |
| target | stringa (RegExp) |
| sostituzione | stringa |
replaceAll(<baseString>,<sourceString>,<replacementString>)
Restituisce una stringa.
replaceAll("Hello World", "l", "x")
Restituisce “Hexxo Worxd”.
Poiché il parametro di destinazione è un RegExp, a seconda della stringa che si desidera sostituire, potrebbe essere necessario eseguire l’escape di alcuni caratteri. Consulta l’esempio nella funzione replace.
split split
Divide la prima stringa di argomento con una stringa di separatore (seconda stringa di argomento, che può essere un’espressione regolare) per produrre un elenco di stringhe (token).
split(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| stringa di input | stringa |
| stringa separatore | stringa |
split(<input string>, <separator string>)
Restituisce un valore listString.
split("A_B_C", "_")
Restituisce ["A","B","C"]
Esempio con un campo evento “event.appVersion” con valore: “20.45.2.3434”
split(@event{event.appVersion}, "\\.")
Restituisce ["20", "45", "2", "3434"]
startWith startWith
Restituisce true se il secondo parametro è un prefisso del primo.
startWith(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| stringa | stringa |
| prefisso | stringa |
startWith(<string>,<string>)
Restituisce un valore booleano.
startWith("Hello World", "Hello")
Restituisce true.
startWith("Hello World", "World")
Restituisce false.
startWithIgnoreCase startWithIgnoreCase
Restituisce true se il secondo parametro è un prefisso del primo senza considerare la distinzione tra maiuscole e minuscole.
startWithIgnoreCase(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| stringa | stringa |
| prefisso | stringa |
startWithIgnoreCase(<string>,<string>)
Restituisce un valore booleano.
startWithIgnoreCase("rowing is great", "RO")
Restituisce true.
substr substr
Restituisce la sottostringa dell’espressione stringa tra l’indice iniziale e l’indice finale. Se l’indice finale non è definito, si trova tra l’indice iniziale e la fine.
substr(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parametro | tipo |
| stringa | stringa |
| beginIndex | intero |
| endIndex | intero |
substr(<string>,<beginIndex>)
substr(<string>,<beginIndex>,<endIndex>)
Restituisce una stringa.
substr("Hello World",6)
Restituisce “World”.
substr("Hello World", 0, 5)
Restituisce “Hello”.
trim trim
Rimuove gli spazi iniziali e finali.
trim(<parameters>)| table 0-row-2 1-row-2 | |
|---|---|
| Parametro | Tipo |
| stringa | stringa |
trim(<string>)
Restituisce una stringa.
trim(" Hello ")
Restituisce “Hello”.
upper upper
Restituisce una versione in maiuscolo del parametro.
upper(<parameters>)upper(<string>)
Restituisce una stringa.
upper("b")
Restituisce “B”.
uuid uuid
Genera un UUID (Universal Unique IDentifier) casuale.
uuid()uuid()
Restituisce una stringa.
uuid()
Restituisce “79e70b7f-8a85-400b-97a1-9f9826121553”.
Questa sezione contiene informazioni strutturate che supportano l’interpretazione, il recupero e la risposta alle domande relative a questo argomento.
Per una comprensione completa, queste informazioni devono essere unite alla documentazione su questa pagina. Nessuna delle due origini è progettata per essere indipendente; la pagina descrive la funzione, mentre questa sezione fornisce un contesto aggiuntivo che aiuta a non ambiguare la terminologia, le finalità, l’applicabilità e i vincoli.
- TL;DR: In questa pagina sono documentate tutte le funzioni di stringa disponibili nelle espressioni di percorso AJO, che includono la ricerca di testo, il confronto, la trasformazione, l’estrazione, la convalida, la sostituzione, la suddivisione e la generazione di identificatori univoci.
Intenti:
- Concatena due o più stringhe utilizzando
concat - Cercare una sottostringa all’interno di una stringa (distinzione maiuscole/minuscole o senza distinzione maiuscole/minuscole) utilizzando
containocontainIgnoreCase - Confronta due stringhe ignorando la distinzione tra maiuscole e minuscole utilizzando
equalIgnoreCaseonotEqualIgnoreCase - Verifica se una stringa inizia o termina con un prefisso o un suffisso specifico utilizzando
startWith,endWithe le relative varianti senza distinzione tra maiuscole e minuscole - Estrarre una sottostringa in base alle posizioni di indice utilizzando
substr - Sostituire la prima o tutte le occorrenze di un pattern in una stringa utilizzando
replaceoreplaceAll - Dividere una stringa in un elenco di token con un separatore utilizzando
split - Genera un UUID casuale per le esigenze di identificatori univoci utilizzando
uuid - Verificare se una stringa è vuota o non vuota utilizzando
isEmptyoisNotEmpty
Glossario:
- RegExp: un pattern di espressione regolare utilizzato come parametro di destinazione in
replace,replaceAllematchRegExp. I caratteri speciali devono essere preceduti da\\ - UUID: IDentifier univoco universale — un identificatore di stringa generato in modo casuale restituito da
uuid() - substr: estrae una parte di una stringa specificando un indice iniziale e un indice finale facoltativo (basato su zero)
Guardrail:
- Il parametro
targetinreplaceereplaceAllè trattato come RegExp; i caratteri speciali (ad esempio|,.) devono essere preceduti da\\ replacesostituisce solo la prima occorrenza corrispondente; utilizzarereplaceAllper sostituire ogni occorrenzaisEmptyrestituisce false per i valori null (non true); null non è considerato una stringa vuotaindexOfelastIndexOfrestituiscono -1 quando non viene trovata alcuna corrispondenza- Le posizioni dell’indice stringa sono basate su zero (il primo carattere si trova nella posizione 0)
Terminologia:
- Nome canonico: Funzioni stringa — Acronimo: none — Varianti: funzioni testo, funzioni di manipolazione stringa
- Sinonimi: “contain” = “substring check”; “split” = “tokenize string”; “trim” = “strip whitespace”
- Non confondere: “replace” (solo prima occorrenza) ≠ “replaceAll” (tutte le occorrenze)
- Non confondere: “indexOf” (prima posizione di occorrenza) ≠ “lastIndexOf” (ultima posizione di occorrenza)
- Non confondere: “isEmpty” (true solo per stringa di lunghezza zero) ≠ null check (isEmpty restituisce false per null)
- Non confondere: “equalIgnoreCase” (restituisce true se equal ignora case) ≠ “notEqualIgnoreCase” (restituisce true se diverse ignorano case)
Domande frequenti:
- D: come posso verificare se una stringa contiene una sottostringa indipendentemente dalle maiuscole/minuscole? — Utilizzare
containIgnoreCase("myString", "searchTerm"), che restituisce true se il termine di ricerca viene trovato in ogni caso. - Q: Qual è la differenza tra
replaceereplaceAll? —replacesostituisce solo la prima occorrenza corrispondente;replaceAllsostituisce ogni occorrenza nella stringa. - Q: perché è necessario eseguire l’escape del carattere
|inreplace? — Il parametro di destinazione viene trattato come espressione regolare;|è un carattere RegExp speciale e deve essere escluso come\\|per essere trattato come una pipe letterale. - Q:
isEmptyrestituisce true per null? — No,isEmptyrestituisce false per null; restituisce true solo per una stringa di lunghezza zero"". - D: come posso estrarre il numero di versione principale da una stringa di versione come “20.45.2.3434”? — Utilizzare
getListItem(split(@event{event.appVersion}, "\\."), 0)per dividere per punto e recuperare il primo elemento. - D: come si genera un identificatore univoco in un’espressione di percorso? — Utilizzare
uuid(), che restituisce una stringa UUID generata in modo casuale senza parametri richiesti.