# Funciones de cadenas

Conjunto de [Funciones de fórmula ](/21/velneo-vdevelop/proyectos-objetos-y-editores/editores/asistente-de-formulas.md)orientadas al manejo de cadenas.

## countString

Devuelve el número de veces que la cadena contiene la subcadena.

### Sintaxis

countString(cadena, subcadena)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### subcadena

Expresión alfabética a buscar en la cadena.

### Ejemplo

`countString("velneo", "e" )` = 2

## fillString

Devuelve una cadena con la repetición de la que pasamos como parámetro.

### Sintaxis

fillString(cadena, nRepeticiones)

### Parámetros

#### cadena

Expresión alfabética a repetir.

#### nRepeticiones

Número de repeticiones.

### Ejemplo

`fillString("*", "4 )` = \*\*\*\*

## getStringRegExp

Devuelve la cadena que se corresponde con la subexpresión regular a partir de la posición indicada teniendo en cuenta si distinguimos mayúsculas y minúsculas. Para la subexpresión 0 devuelve toda cadena.

### Sintaxis

getStringRegExp(cadena, expresionRegular, posIni, caseSensitive, numSubExpresion)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### expresionRegular

Expresión regular con el texto a encontrar en la cadena.

#### posIni

Posición inicial de la búsqueda.

#### caseSensitive

1 distingue mayúsculas y minúsculas, 0 no.

#### numSubExpresion

Si la expresión regular establecida en el segundo parámetro contiene varios gupos de expresiones regulares, en este parámetro podremos hacer que busque coincidencias de todas las subexpresiones (0) o de una en concreto; en cuyo caso escribiremos un valor comprendido entre 1 y el número total de subexpresiones declaradas. La primera subexpresión será la 1, la segunda la 2 y así sucesivamente.

Ver el capítulo [expresiones regulares](/21/velneo-vdevelop/proyectos-objetos-y-editores/editores/asistente-de-formulas/funciones-estandar/funciones-de-cadenas/expresiones-regulares.md) para saber cómo se construye una expresión regular.

### Uso del parámetro numSubExpresion de la función **getStringRegExp**

Tal y como se explica en el capítulo capítulo expresiones regulares, podemos agrupar distintas subexpresiones de una expresión regular simplemente cerrándolas entre paréntesis. Si en la expresión regular escribimos **(a)|(b)|(c)** y el parámetro numSubExpresion de esta función es 0, se buscarán coincidencias de las tres subexpresiones, es decir, de “a”, “b” o “c” en la cadena. Si quisiésemos que solamente se buscasen coincidencias de una de ellas, por ejemplo **b**, sin tener que modificar la expresión regular, bastará con escribir en el parámetro numSubExpresion de esta función en valor 2 que se corresponde con el número de subexpresión declarado; **(a)** sería 1 y **(c)** sería 3.

### Ejemplos

`getStringRegExp("Hay 1235 personas", "\d{1,3}", 0, 0, 0)` = 123

`getStringRegExp("abcd", "(a)(b)(c)(d)", 0, 0, 0)` = abcd

`getStringRegExp("( 2 * 4 = 8 )", "[0-9]", 0, 0, 0)` = 2

`getStringRegExp("( 2 * 4 = 8 )", "^[0-9]", 0, 0, 0)` = No generará ocurrencia pues el primer carácter de la cadena no es un número.

## indexOfRegExp

Devuelve la posición de la cadena en la que encontramos la expresión regular a partir de la posición indicada teniendo en cuenta si distinguimos o no entre mayúsculas y minúsculas.

Devolverá -1 si no la encuentra.

### Sintaxis

indexOfRegExp(cadena, expresionRegular, posIni, caseSensitive)

### Parámetros

#### cadena

Expresión alfabética de referencia.

## indexOfString

Devuelve la posición del inicio de la subcadena de texto dentro de la cadena o -1 si no la contiene.

### Sintaxis

indexOfString(cadena, subcadena, posInicio, caseSensitive)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### subcadena

Expresión alfabética a buscar en la cadena.

#### posInicio

Posición de la cadena a partir de la cual se desea buscar la subcadena. La primera posición es la 0.

#### caseSensitive

1 distingue mayúsculas y minúsculas, 0 no.

### Ejemplo

`indexOfString("Velneo 17", "1", 0, 1)` = 7

## insertString

Inserta la subcadena en la posición deseada de la cadena.

### Sintaxis

insertString(cadena, posición, subcadena)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### posición

Posición, dentro de la cadena, donde se desea insertar la subcadena. La primera posición es la 0.

#### subcadena

Expresión alfabética a insertar en la cadena.

### Ejemplo

`insertString("Velneo 7", 7, "V")` = Velneo

## isEmpty

Devuelve true (1) si la cadena pasada como parámetro esta vacía.

### Sintaxis

isEmpty(parámetro)

### Parámetros

#### parámetro

Cadena a evaluar. Esta cadena puede ser un literal, una variable alfabética, un campo alfabético, el retorno de una función, etc.

### Ejemplo

`isEmpty("Velneo")` = 0

Debemos tener en cuenta que es una función de cadena, es decir, interpreta el parámetro como si se tratase de un texto.

No debemos usar esta función con campos numéricos. En el caso de que queramos realizar la comprobación de si está vació o no el campo numérico, lo correcto es hacer la comprobación haciendo la comprobación con el operador correspondiente.

Ejemplos:

`choose(#CAMPO = 0…)`

`! #CAMPO`

## left

Extracta caracteres por la izquierda de la cadena. El primer carácter tiene la posición 1.

### Sintaxis

left(cadena, longitud)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### longitud

Número de caracteres a extraer.

### Ejemplo

`left("Velneo", 6)` = Velneo

## leftJustified

Devuelve una cadena, justificada a la izquierda, de la longitud especificada, rellenando por la derecha, si es necesario, con un carácter de relleno.

### Sintaxis

leftJustified(cadena, longitud, relleno)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### longitud

Longitud total de la cadena a generar.

#### relleno

Carácter de relleno. Por defecto será un espacio en blanco.

Este comando no cortará la cadena en el caso de que la longitud establecida sea menor que la longitud de la cadena de origen, por lo tanto, debemos asegurarnos de que la cadena de origen no tenga una longitud mayor que la cadena que queremos devolver.

### Ejemplo

`leftJustified("250 €", 20, "*")` = 250 €\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

## leftWords

Extrae desde la parte izquierda de la cadena hasta una determinada posición, sin cortar palabras.

### Sintaxis

leftWords(cadena, longitud)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### longitud

Posición hasta la que se desean extraer palabras.

### Ejemplo

`leftWords("Esto es una prueba", 10 )` = Esto es

## len

Devuelve la longitud de una cadena.

### Sintaxis

len(cadena)

### Parámetros

#### cadena

Expresión alfabética de referencia.

### Ejemplo

`len("ab")` = 2

## mid

Extrae caracteres de una cadena a partir de una posición determinada.

### Sintaxis

mid(cadena, posición, longitud)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### posición (opcional)

Posición dentro de la cadena a partir de la cual se desea extraer los caracteres. La primera posición será la 0. Si no se establece ningún valor se asumirá 0 como posición.

#### Longitud

Longitud total de la cadena a extraer. Si se omite este parámetro, extraerá desde la posición indicada hasta el final de la cadena.

### Ejemplos

`mid("abcdefg", 2, 2 )` = cd\
`mid("abcdefg", 2)` = cdefg\
`mid("abcdefg", 2, 0 )` = ""

## removeAccents

Devuelve la cadena pasada como parámetro sin tildes.

### Sintaxis

removeAccents(cadena)

### Parámetros

#### cadena

Expresión alfabética de referencia.

### Ejemplo

`removeAccents("àéô")` = aeo

## removeCharsAt

Elimina de una cadena un número determinado de caracteres determinados a partir una posición.

### Sintaxis

removeCharsAt(cadena, posición, longitud)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### posición

Posición a partir de la cual se desea borrar caracteres. La primera posición es 0.

#### longitud

Número de caracteres a borrar.

### Ejemplo

`removeCharsAt("velneo 17", 6, 2 )` = velneo7

## removeString

Elimina de una cadena todas las ocurrencias de una subcadena.

### Sintaxis

removeString(cadena, subcadena)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### subcadena

Expresión alfabética a quitar de la cadena. Distingue entre mayúsculas y minúsculas.

### Ejemplo

`removeString("Aa", "A" )` = a

## replaceString

Sustituye, dentro de una cadena, todas las ocurrencias de una subcadena por otra subcadena.

### Sintaxis

replaceString(cadena, subcadenaPre, subcadenaPost)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### subcadenaPre

Expresión alfabética a buscar en la cadena.

#### subcadenaPost

Expresión alfabética a sustituir en la cadena por los caracteres de la subcadenaPre. Distingue entre mayúsculas y minúsculas.

### Ejemplo

`replaceString("velneo", "v", "V" )` = Velneo

## reverseString

Devuelve invertida la cadena pasada como parámetro.

### Sintaxis

reversetString(cadena)

### Parámetros

#### cadena

Expresión alfabética de referencia.

### Ejemplo

`reverseString("abc")` = cba

## right

Extracta caracteres por la parte derecha de la cadena. El primer carácter tiene la posición 1.

### Sintaxis

right(cadena, longitud)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### longitud

Número de caracteres a extraer.

### Ejemplo

`right("abc", 1)` = c

## rightJustified

Devuelve una cadena, justificada a la derecha, de la longitud especificada, rellenando por la izquierda, si es necesario, con un carácter de relleno.

### Sintaxis

rightJustified(cadena, longitud, relleno)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### longitud

Longitud total de la cadena a generar.

#### relleno

Carácter de relleno. Por defecto será un espacio en blanco.

Este comando no cortará la cadena en el caso de que la longitud establecida sea menor que la longitud de la cadena de origen, por lo tanto, debemos asegurarnos de que la cadena de origen no tenga una longitud mayor que la cadena que queremos devolver.

### Ejemplo

`rightJustified("250 €", 10, "0")` = 00000250 €

## rightWords

Extrae desde una determinada posición hasta la parte derecha de la cadena, sin cortar palabras.

### Sintaxis

rightWords(cadena, longitud)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### longitud

Posición a partir de la cual desean extraer palabras.

### Ejemplo

`rightWords("Esto es una prueba", 11 )` = prueba

## stringSection

Devuelve una sección de una cadena delimitada por un separador en una posición dada.

### Sintaxis

stringSection(cadena, separador, pos, seccionInclSepIni, seccionInclSepFin)

### Parámetros

#### cadena

Expresión alfabética de referencia.

#### separador

Expresión alfabética correspondiente al carácter que se usa como separador dentro de la cadena de referencia.

#### pos

Posición del ítem a extraer de la cadena. La primera posición será la 0.

#### seccionInclSepIni

Este parámetro será resuelto con un 1 si queremos que en la sección extraída se incluya el separador inicial o un 0 en el caso contrario.

#### seccionInclSepFin

Este parámetro será resuelto con un 1 si queremos que en la sección extraída se incluya el separador final o un 0 en el caso contrario.

### Ejemplos

`stringSection("uno|dos|3", "|", 1, 0, 0)` = dos\
`stringSection("uno|dos|3", "|", 1, 1, 0)` = |dos\
`stringSection("uno|dos|3", "|", 1, 0, 1)` = dos|\
`stringSection("uno|dos|3", "|", 1, 1, 1)` = |dos|

## stringToHex

Devuelve cada carácter de la cadena Latin1 pasada como parámetro en formato hexadecimal. Es decir, toma cada carácter de la cadena de origen y devuelve el código hexadecimal correspondiente.

### Sintaxis

stringToHex(cadena)

### Parámetros

#### Cadena

Expresión de tipo fórmula con la cadena Latin1 que se desea convertir en hexadecimal. Podemos usar el [asistente para edición de fórmulas](/21/velneo-vdevelop/proyectos-objetos-y-editores/editores/asistente-de-formulas.md) para su especificación.

### Ejemplo

`stringToHex("Hola")` = 486F6C61

## stripHtml

Devuelve una cadena quitándole todas las etiquetas html que tenga. Esta función es útil cuando disponemos de una cadena con código html y deseamos quitar todas las etiquetas html del mismo.

### Sintaxis

stripHtml(cadena)

### Parámetros

#### Cadena

Expresión alfabética de referencia.

### Ejemplo

`stripHtml("<HTML><BODY>Hola</BODY></HTM>" )` = Hola

## titleStyle

Convierte el primer carácter de cada palabra de una cadena en mayúscula y el resto en minúscula.

### Sintaxis

titleStyle(cadena)

### Parámetros

#### cadena

Expresión alfabética de referencia.

### Ejemplo

`titleStyle("john doe")` = John Doe

## toLower

Devuelve una cadena convertida a minúsculas.

### Sintaxis

toLower(cadena)

### Parámetros

#### cadena

Expresión alfabética de referencia.

### Ejemplo

`toLower("ABCdef")` = abcdef

## toUpper

Devuelve una cadena convertida a mayúsculas.

### Sintaxis

toUpper(cadena)

### Parámetros

#### cadena

Expresión alfabética de referencia.

### Ejemplo

`toUpper("ABCdef")` = ABCDEF

## trimmedString

Devuelve la cadena omitiendo espacios no significativos al inicio y al final de la misma.

### Sintaxis

trimmedString(cadena)

### Parámetros

#### cadena

Expresión alfabética de referencia.

### Ejemplo

`trimmedString(" abc ")` = abc (si los espacios a ambos lados de la cadena)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.velneo.com/21/velneo-vdevelop/proyectos-objetos-y-editores/editores/asistente-de-formulas/funciones-estandar/funciones-de-cadenas.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
