Funciones String
Las funciones de texto permiten manipular, normalizar, recortar y formatear cadenas de caracteres en expresiones de locals.yml y condiciones de validación en variables.yml.
Índice de Funciones
Sección titulada «Índice de Funciones»| Función | Firma | Descripción |
|---|---|---|
lower |
lower(string) |
Convierte todos los caracteres a minúsculas. |
upper |
upper(string) |
Convierte todos los caracteres a mayúsculas. |
trim |
trim(string, [cutset]) |
Elimina espacios o caracteres especificados al inicio y fin. |
trimprefix |
trimprefix(string, prefix) |
Remueve el prefijo indicado si está presente. |
trimsuffix |
trimsuffix(string, suffix) |
Remueve el sufijo indicado si está presente. |
startswith |
startswith(string, prefix) |
Retorna true si la cadena comienza con el prefijo. |
endswith |
endswith(string, suffix) |
Retorna true si la cadena termina con el sufijo. |
replace |
replace(string, search, rep) |
Reemplaza todas las ocurrencias del patrón. |
split |
split(separator, string) |
Divide una cadena en una lista según el separador. |
join |
join(separator, list) |
Une los elementos de una lista en una cadena. |
format |
format(format, ...args) |
Aplica formato con verbos (%s, %d, %j, %%). |
substr |
substr(string, offset, len) |
Extrae una subcadena desde una posición dada. |
Convierte todas las letras de una cadena a minúsculas.
testform functions --eval "lower('STAGING-APP')"# => "staging-app"locals: canonical_env: "${lower(var.environment)}"Convierte todas las letras de una cadena a mayúsculas.
testform functions --eval "upper('qa_suite')"# => "QA_SUITE"Elimina espacios en blanco iniciales y finales. Opcionalmente acepta un segundo argumento con los caracteres a eliminar.
testform functions --eval "trim(' hola mundo ')"# => "hola mundo"
testform functions --eval "trim('---alerta---', '-')"# => "alerta"trimprefix
Sección titulada «trimprefix»Elimina el prefijo especificado del inicio de la cadena si existe.
testform functions --eval "trimprefix('https://api.empresa.com', 'https://')"# => "api.empresa.com"trimsuffix
Sección titulada «trimsuffix»Elimina el sufijo especificado del final de la cadena si existe.
testform functions --eval "trimsuffix('tests/runs/suite.run.feature', '.run.feature')"# => "tests/runs/suite"startswith
Sección titulada «startswith»Retorna true si la cadena inicia con el prefijo indicado. Es especialmente útil en validaciones de variables.
variable: api_endpoint: type: string validation: condition: "${startswith(var.api_endpoint, 'https://')}" error_message: "La URL de la API debe utilizar protocolo HTTPS seguro."endswith
Sección titulada «endswith»Retorna true si la cadena finaliza con el sufijo indicado.
variable: spec_file: type: string validation: condition: "${endswith(var.spec_file, '.case.feature')}" error_message: "El archivo de especificación debe terminar en .case.feature."replace
Sección titulada «replace»Reemplaza todas las ocurrencias de una subcadena por otra.
testform functions --eval "replace('192.168.1.1', '.', '-')"# => "192-168-1-1"Divide una cadena en una lista de cadenas utilizando el delimitador indicado.
testform functions --eval "split(',', 'smoke,regression,e2e')"# => ["smoke", "regression", "e2e"]Concatena los elementos de una lista de cadenas utilizando un delimitador.
testform functions --eval "join(' / ', ['Checkout', 'Pagos', 'Tarjeta'])"# => "Checkout / Pagos / Tarjeta"Aplica formato a una cadena utilizando especificadores de formato al estilo C / Terraform:
%s: Sustitución como cadena de texto.%d: Sustitución como entero.%j: Sustitución como JSON serializado.%%: Escapado literal de%.
testform functions --eval "format('https://%s.empresa.com:%d/v1', 'api', 8080)"# => "https://api.empresa.com:8080/v1"locals: service_url: "${format('https://%s.%s', var.subdomain, var.domain)}"Extrae una subcadena de longitud len a partir del desplazamiento offset. Si offset es negativo, cuenta desde el final de la cadena.
testform functions --eval "substr('20261025_release', 0, 8)"# => "20261025"
testform functions --eval "substr('archivo.json', -4, 4)"# => "json"