Funciones de cadena string-functions
Las funciones de cadena permiten manipular y trabajar con valores de texto dentro de las expresiones de recorrido. Estas funciones son esenciales para el procesamiento de texto, la validación, la transformación y el análisis en los recorridos del cliente.
Utilice funciones de cadena cuando necesite:
- Concatenar y combinar varios valores de texto (concat)
- Busque patrones de texto o subcadenas específicos (contain, containIgnoreCase, indexOf, lastIndexOf, matchRegExp)
- Comparar cadenas con coincidencia que distingue entre mayúsculas y minúsculas (equalIgnoreCase, notEqualIgnoreCase)
- La cadena de comprobación comienza y finaliza (startWith, startWithIgnoreCase, endWith, endWithIgnoreCase)
- Extraer partes de texto mediante operaciones de subcadena (substr)
- Transformar texto a mayúsculas o minúsculas (mayúsculas, minúsculas, recortar)
- Compruebe si las cadenas están vacías o contienen valores específicos (isEmpty, isNotEmpty)
- Reemplazar patrones de texto con nuevos valores (replace, replaceAll)
- Dividir cadenas en matrices para un procesamiento posterior (split)
- Obtener longitud de cadena (length) o generar identificadores únicos (uuid)
Las funciones de cadena proporcionan funcionalidades completas de manipulación de texto, lo que permite un procesamiento de datos sofisticado y una lógica condicional basada en el contenido de texto de las expresiones de recorrido.
concatena concat
Concatena dos parámetros de cadena o una lista de cadenas.
concat(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| Lista | listString |
| cadena | cadena |
concat(<string>,<string>)
concat(<listString>)
Devuelve una cadena.
concat("Hello","World")
Devuelve “HelloWorld”.
concat(["Hello"," ","World"])
Devuelve “Hello World”.
contain contain
Comprueba si la cadena del segundo argumento está contenida en la primera.
contain(<parameters>)- cadena
contain(<string>,<string>)
Devuelve un valor booleano.
contain("rowing is great", "great")
Devuelve verdadero.
containIgnoreCase containIgnoreCase
Comprueba si la cadena del segundo argumento está contenida en la cadena del primer argumento, sin tener en cuenta el caso.
containIgnoreCase(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| cadena | cadena |
| cadena buscada | cadena |
containIgnoreCase(<string>,<string>)
Devuelve un valor booleano.
containIgnoreCase("rowing is great", "GREAT")
Devuelve verdadero.
endWith endWith
Devuelve true si el segundo parámetro es un sufijo del primero.
endWith(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| cadena | cadena |
| sufijo | cadena |
endWith(<string>,<string>)
Devuelve un valor booleano.
endWith("Hello World", "World")
Devuelve verdadero.
endWith("Hello World", "Hello")
Devuelve falso.
endWithIgnoreCase endWithIgnoreCase
Comprueba si la cadena del primer argumento termina con una cadena específica (cadena del segundo argumento), sin tener en cuenta el caso.
endWithIgnoreCase(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| cadena | cadena |
| sufijo | cadena |
endWithIgnoreCase(<string>,<string>)
Devuelve un valor booleano.
endWithIgnoreCase("rowing is great", "AT")
Devuelve verdadero.
equalIgnoreCase equalIgnoreCase
Compara la cadena del primer argumento con la cadena del segundo, ignorando las consideraciones de mayúsculas y minúsculas.
equalIgnoreCase(<parameters>)- cadena
equalIgnoreCase(<string>,<string>)
Devuelve un valor booleano.
equalIgnoreCase("rowing is great", "rowing is GREAT")
Devuelve verdadero.
indexOf indexOf
Devuelve la posición (en el primer argumento) de la primera aparición del segundo parámetro. Devuelve -1 si no hay ninguna coincidencia.
indexOf(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| cadena | Cadena |
| valor especificado | Cadena |
indexOf(<string>,<string>)
Devuelve un entero.
indexOf("Hello", "l")
Devuelve 2.
Explicación:
En “Hello”, la primera aparición de “l” es en la posición 2.
isEmpty isEmpty
Devuelve true si la cadena del parámetro no tiene carácter.
isEmpty(<parameters>)- cadena
isEmpty(<string>)
Devuelve un valor booleano.
isEmpty("")
Devuelve verdadero.
isEmpty("Hello World")
Devuelve falso.
isEmpty(<null>)
Devuelve falso.
isNotEmpty isNotEmpty
Devuelve true si la cadena del parámetro no está vacía.
isNotEmpty(<parameters>)- cadena
isNotEmpty(<string>)
Devuelve un valor booleano.
isNotEmpty("")
Devuelve falso.
isNotEmpty("hello")
Devuelve verdadero.
lastIndexOf lastIndexOf
Devuelve la posición (en el primer argumento) de la última aparición del segundo parámetro. Devuelve -1 si no hay ninguna coincidencia.
lastIndexOf(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| cadena | Cadena |
| valor especificado | Cadena |
lastIndexOf(<string>,<string>)
Devuelve un entero.
lastIndexOf("Hello", "l")
Devuelve 3.
Explicación:
En “Hello”, la última ocurrencia de “l” está en la posición 3.
length length
Devuelve el número de caracteres de la expresión de cadena en el parámetro.
length(<parameters>)- cadena
length(<string>)
Devuelve un entero.
length("Hello World")
Devuelve 11.
lower lower
Devuelve una versión en minúsculas del parámetro.
lower(<parameter>)- cadena
lower(<string>)
Devuelve una cadena.
lower("A")
Devuelve “a”.
matchRegExp matchRegExp
Devuelve true si la cadena del primer parámetro coincide con la expresión regular del segundo parámetro. Para obtener más información, vea esta página.
matchRegExp(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| cadena | cadena |
| regexp | cadena |
matchRegExp(<string>,<string>)
Devuelve un valor booleano.
matchRegExp("12345", "\\d+")
Devuelve verdadero.
notEqualIgnoreCase notEqualIgnoreCase
Compruebe si la cadena del primer argumento con la cadena del segundo argumento es diferente, ignorando las consideraciones de mayúsculas y minúsculas.
notEqualIgnoreCase(<parameters>)- cadena
notEqualIgnoreCase(<string>,<string>)
Devuelve un valor booleano.
notEqualIgnoreCase(@event{iOSPushPermissionAllowed.device.model}, "iPad")replace replace
Reemplaza la primera incidencia que coincida con la cadena de destino por la cadena de reemplazo de la cadena base.
La sustitución se realiza desde el principio de la cadena hasta el final, por ejemplo, si se sustituye “a” por “b” en la cadena “aaa”, el resultado será “ba” en lugar de “ab”.
replace(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parámetro | Tipo |
| basar | cadena |
| Target | cadena (RegExp) |
| reemplazo | cadena |
replace(<base>,<target>,<replacement>)
Devolver una cadena.
replace("Hello World", "l", "x")
Devuelve “Mundo Hexlo”.
Ejemplo con RegExp:
Dado que el parámetro de destino es RegExp, en función de la cadena que desee reemplazar, es posible que tenga que omitir algunos caracteres. Vea el siguiente ejemplo:
- cadena que evaluar:
|OFFER_A|OFFER_B - proporcionado por un atributo de perfil
#{ExperiencePlatform.myFieldGroup.profile.myOffers} - Cadena que reemplazar:
|OFFER_A - Cadena reemplazada por:
'' - Debe agregar
\\antes del carácter|.
La expresión es:
replace(#{ExperiencePlatform.myFieldGroup.profile.myOffers}, '\\|OFFER_A', '')
La cadena devuelta es: |OFFER_B
También puede generar la cadena que desea reemplazar desde un atributo determinado:
replace(#{ExperiencePlatform.myFieldGroup.profile.myOffers}, '\\|' + #{ExperiencePlatform.myFieldGroup.profile.myOfferCode}, '')
replaceAll replaceAll
Reemplaza todas las ocurrencias que coincidan con la cadena de destino por la cadena de reemplazo de la cadena base.
La sustitución se realiza desde el principio de la cadena hasta el final, por ejemplo, si se sustituye “a” por “b” en la cadena “aaa”, el resultado será “ba” en lugar de “ab”.
replaceAll(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parámetro | Tipo |
| basar | cadena |
| Target | cadena (RegExp) |
| reemplazo | cadena |
replaceAll(<baseString>,<sourceString>,<replacementString>)
Devuelve una cadena.
replaceAll("Hello World", "l", "x")
Devuelve “Hexxo Worxd”.
Dado que el parámetro de destino es RegExp, en función de la cadena que desee reemplazar, es posible que tenga que omitir algunos caracteres. Consulte el ejemplo en la función replace.
split split
Divide la cadena del primer argumento con una cadena de separador (cadena del segundo argumento, que puede ser una expresión regular) para producir una lista de cadenas (tokens).
split(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| cadena de entrada | cadena |
| cadena de separación | cadena |
split(<input string>, <separator string>)
Devuelve un valor listString.
split("A_B_C", "_")
Devuelve ["A","B","C"]
Ejemplo con un campo de evento “event.appVersion” con el valor: “20.45.2.3434”
split(@event{event.appVersion}, "\\.")
Devuelve ["20", "45", "2", "3434"]
startWith startWith
Devuelve true si el segundo parámetro es un prefijo del primero.
startWith(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| cadena | cadena |
| prefijo | cadena |
startWith(<string>,<string>)
Devuelve un valor booleano.
startWith("Hello World", "Hello")
Devuelve verdadero.
startWith("Hello World", "World")
Devuelve falso.
startWithIgnoreCase startWithIgnoreCase
Devuelve true si el segundo parámetro es un prefijo del primero sin tener en cuenta las mayúsculas y minúsculas.
startWithIgnoreCase(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| cadena | cadena |
| prefijo | cadena |
startWithIgnoreCase(<string>,<string>)
Devuelve un valor booleano.
startWithIgnoreCase("rowing is great", "RO")
Devuelve verdadero.
substr substr
Devuelve la subcadena de la expresión de cadena entre el índice inicial y el índice final. Si no se define el índice final, se encuentra entre el índice inicial y el final.
substr(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parámetro | tipo |
| cadena | cadena |
| beginIndex | entero |
| endIndex | entero |
substr(<string>,<beginIndex>)
substr(<string>,<beginIndex>,<endIndex>)
Devolver una cadena.
substr("Hello World",6)
Devuelve “World”.
substr("Hello World", 0, 5)
Devuelve “Hello”.
trim trim
Elimina los espacios iniciales y finales.
trim(<parameters>)| table 0-row-2 1-row-2 | |
|---|---|
| Parámetro | Tipo |
| cadena | cadena |
trim(<string>)
Devolver una cadena.
trim(" Hello ")
Devuelve “Hello”.
upper upper
Devuelve una versión en mayúsculas del parámetro.
upper(<parameters>)upper(<string>)
Devolver una cadena.
upper("b")
Devuelve “B”.
UUID uuid
Genera un UUID aleatorio (identificador único universal).
uuid()uuid()
Devuelve una cadena.
uuid()
Devuelve “79e70b7f-8a85-400b-97a1-9f9826121553”.
Esta sección contiene conocimientos estructurados destinados a apoyar la interpretación, la recuperación y la respuesta a preguntas relacionadas con este tema.
Para una comprensión completa, esta información debe combinarse con la documentación de esta página. Ninguna de las fuentes pretende ser independiente; la página describe la función, mientras que esta sección proporciona contexto adicional que ayuda a desambiguar la terminología, la intención, la aplicabilidad y las restricciones.
- TL;DR: Esta página documenta todas las funciones de cadena disponibles en las expresiones de recorrido de AJO, que abarcan la búsqueda de texto, la comparación, la transformación, la extracción, la validación, el reemplazo, la división y la generación de identificadores únicos.
Intenciones:
- Concatenar dos o más cadenas utilizando
concat - Busque una subcadena dentro de una cadena (con distinción entre mayúsculas y minúsculas o sin distinción entre mayúsculas y minúsculas) usando
containocontainIgnoreCase - Comparar dos cadenas mientras se omiten las mayúsculas y minúsculas usando
equalIgnoreCaseonotEqualIgnoreCase - Compruebe si una cadena comienza o termina con un prefijo o sufijo específico utilizando
startWith,endWithy sus variantes que no distinguen entre mayúsculas y minúsculas - Extraer una subcadena por posiciones de índice utilizando
substr - Reemplazar la primera o todas las ocurrencias de un patrón en una cadena usando
replaceoreplaceAll - Dividir una cadena en una lista de tokens mediante un separador con
split - Genere un UUID aleatorio para las necesidades de identificador único usando
uuid - Compruebe si una cadena está vacía o no está vacía usando
isEmptyoisNotEmpty
Glosario:
- RegExp: un patrón de expresión regular utilizado como parámetro de destino en
replace,replaceAllymatchRegExp; los caracteres especiales deben tener un carácter de escape de\\ - UUID: identificador único universal: identificador de cadena generado aleatoriamente devuelto por
uuid() - substr: extrae una parte de una cadena especificando un índice inicial y un índice final opcional (basado en cero)
Protecciones:
- El parámetro
targetenreplaceyreplaceAllse trata como RegExp; los caracteres especiales (por ejemplo,|,.) deben tener un carácter de escape con\\ replacereemplaza solamente la primera incidencia que coincida; usereplaceAllpara reemplazar todas las incidenciasisEmptydevuelve falso para valores nulos (no verdadero); nulo no se considera una cadena vacíaindexOfylastIndexOfdevuelven -1 cuando no se encuentra ninguna coincidencia- Las posiciones de índice de la cadena están basadas en cero (el primer carácter se encuentra en la posición 0)
Terminología:
- Nombre canónico: Funciones de cadena — Acrónimo: none — variantes: funciones de texto, funciones de manipulación de cadenas
- Sinónimos: “contain” = “substring check”; “split” = “tokenize string”; “trim” = “strip whitespace”
- No confunda: “replace” (solo primera incidencia) ≠ “replaceAll” (todas las incidencias)
- No confunda: “indexOf” (posición de la primera incidencia) ≠ “lastIndexOf” (posición de la última incidencia)
- No confunda: “isEmpty” (verdadero solo para la cadena de longitud cero) ≠ comprobación nula (isEmpty devuelve falso para nulo)
- No confunda: “equalIgnoreCase” (devuelve true cuando el caso de omisión es igual) ≠ “notEqualIgnoreCase” (devuelve true cuando el caso de omisión es diferente)
PREGUNTAS MÁS FRECUENTES:
- Q: ¿Cómo puedo comprobar si una cadena contiene una subcadena independientemente de las mayúsculas y minúsculas? — Use
containIgnoreCase("myString", "searchTerm"), que devuelve true si el término de búsqueda se encuentra en cualquier caso. - Q: ¿Cuál es la diferencia entre
replaceyreplaceAll? —replacesustituye solamente la primera aparición que coincida;replaceAllsustituye todas las apariciones de la cadena. - Q: ¿Por qué necesito omitir el carácter
|enreplace? — El parámetro de destino se trata como una expresión regular;|es un carácter RegExp especial y debe omitirse como\\|para tratarse como una barra vertical literal. - Q: ¿Devuelve
isEmptytrue para null? — No,isEmptydevuelve false para null; solo devuelve true para una cadena de longitud cero"". - Q: ¿Cómo extraigo el número de versión principal de una cadena de versión como “20.45.2.3434”? — Utilice
getListItem(split(@event{event.appVersion}, "\\."), 0)para dividir por puntos y recuperar el primer elemento. - Q: ¿Cómo se genera un identificador único en una expresión de recorrido? — Use
uuid(), que devuelve una cadena UUID generada aleatoriamente sin parámetros requeridos.