Citrix ADC

Operaciones básicas sobre texto

Las operaciones básicas en el texto incluyen operaciones para hacer coincidir cadenas, calcular la longitud de una cadena y controlar la distinción entre mayúsculas y minúsculas. Puede incluir espacios en blanco en una cadena que se pasa como argumento a una expresión, pero la cadena no puede superar los 255 caracteres.

Funciones de comparación de cadenas

En la tabla siguiente se enumeran las operaciones básicas de coincidencia de cadenas en las que las funciones devuelven un valor booleano TRUE o FALSE.

Función Descripción
<text>.CONTAINS(<string>) Devuelve un valor booleano TRUE si el objetivo contiene <string>. Ejemplo:http.req.url.contains(".jpeg")
<text>.EQ(<string>) Devuelve un valor booleano TRUE si el objetivo coincide exactamente con <string>. Por ejemplo, la siguiente expresión devuelve un valor booleano TRUE para una URL con el nombre de host “myhostabc”: http.req.url.hostname.eq("myhostabc")
<text>.STARTSWITH(<string>) Devuelve un valor booleano TRUE si el objetivo empieza por <string>. Por ejemplo, la siguiente expresión devuelve un valor booleano TRUE para una URL con el nombre de host “myhostabc”: http.req.url.hostname.startswith("myhost")
<text>.ENDSWITH(<string>) Devuelve un valor booleano TRUE si el objetivo termina en<string>. Por ejemplo, la siguiente expresión devuelve un valor booleano TRUE para una URL con el nombre de host “myhostabc”: http.req.url.hostname.endswith("abc")
<text>.NE(<string>) Devuelve un valor booleano TRUE si el prefijo no es igual al argumento de cadena. Si el prefijo devuelve un valor que no es cadena, el argumento de la función se compara con la representación de cadena del valor devuelto por el prefijo. Puede utilizar las funciones con SET_TEXT_MODE(IGNORECASE) or SET_TEXT_MODE(NOIGNORECASE)y con conjuntos de caracteres ASCII y UTF-8.
<text>.GT(<string>) Devuelve un valor booleano TRUE si el prefijo es alfabéticamente mayor que el argumento de cadena. Si el prefijo devuelve un valor que no es cadena, el argumento de la función se compara con la representación de cadena del valor devuelto por el prefijo. Puede utilizar las funciones con SET_TEXT_MODE(IGNORECASE) o SET_TEXT_MODE(NOIGNORECASE), y con conjuntos de caracteres ASCII y UTF-8.
<text>.GE(<string>) Devuelve un valor booleano TRUE si el prefijo es alfabéticamente mayor o igual que el argumento de cadena. Si el prefijo devuelve un valor que no es cadena, el argumento de la función se compara con la representación de cadena del valor devuelto por el prefijo. Puede utilizar las funciones con SET_TEXT_MODE(IGNORECASE) o SET_TEXT_MODE(NOIGNORECASE), y con conjuntos de caracteres ASCII y UTF-8.
<text>.LT(<string>) Devuelve un valor booleano TRUE si el prefijo es alfabéticamente menor que el argumento de cadena. Si el prefijo devuelve un valor que no es cadena, el argumento de la función se compara con la representación de cadena del valor devuelto por el prefijo. Puede utilizar las funciones con SET_TEXT_MODE(IGNORECASE) o SET_TEXT_MODE(NOIGNORECASE), y con conjuntos de caracteres ASCII y UTF-8.
<text>.LE(<string>) Devuelve un valor booleano TRUE si el prefijo es alfabéticamente menor o igual que el argumento de cadena. Si el prefijo devuelve un valor que no es cadena, el argumento de la función se compara con la representación de cadena del valor devuelto por el prefijo. Puede utilizar las funciones con SET_TEXT_MODE(IGNORECASE) o SET_TEXT_MODE(NOIGNORECASE), y con conjuntos de caracteres ASCII y UTF-8.

Calcula la longitud de una cadena

La operación <text>.LENGTH devuelve un valor numérico igual al número de caracteres (no bytes) de una cadena:

<text>.LENGTH

Por ejemplo, es posible que quiera identificar las URL de solicitud que superan una longitud determinada. A continuación se muestra una expresión que implementa este ejemplo:

HTTP.REQ.URL.LENGTH < 500

Después de contar los caracteres o elementos de una cadena, puede aplicarles operaciones numéricas. Para obtener más información, consulte Expresiones de directiva avanzadas: trabajo con fechas, horas y números.

Considerar, ignorar y cambiar mayúsculas y minúsculas de texto

Las siguientes funciones funcionan en mayúsculas o minúsculas de los caracteres de la cadena.

Función Descripción  
<text>.SET_TEXT_MODE(IGNORECASE NOIGNORECASE) Esta función activa o desactiva la sensibilidad de mayúsculas y minúsculas en todas las operaciones de texto.
<text>.TO_LOWER Convierte el destino a minúsculas para un bloque de texto de hasta 2 kilobytes (KB). Devuelve UNDEF si el objetivo supera los 2 KB. Por ejemplo, la cadena “abCD:” se convierte en “abcd:” .  
<text>.TO_UPPER Convierte el destino a mayúsculas. Devuelve UNDEF si el objetivo supera los 2 KB. Por ejemplo, la cadena “abCD:” se convierte en “ABCD:” .  

Elimina caracteres específicos de una cadena

Puede utilizar la función STRIP_CHARS(<string>) para quitar caracteres específicos del texto devuelto por un prefijo de expresión de directiva avanzada (la cadena de entrada). Todas las instancias de los caracteres especificados en el argumento se quitan de la cadena de entrada. Puede utilizar cualquier método de texto en la cadena resultante, incluidos los métodos utilizados para hacer coincidir la cadena con un conjunto de patrones.

Por ejemplo, en la expresión CLIENT.UDP.DNS.DOMAIN.STRIP\_CHARS(".-\_"), la función STRIP\_CHARS(<string>) elimina todos los puntos (.), guiones (-) y guiones bajos (_) del nombre de dominio devuelto por el prefijo CLIENT.UDP.DNS.DOMAIN. Si el nombre de dominio que se devuelve es “a.dom_ai_n-name”, la función devuelve la cadena “adomainname”.

En el siguiente ejemplo, la cadena resultante se compara con un conjunto de patrones denominado “listofdomains”:

CLIENT.UDP.DNS.DOMAIN.STRIP_CHARS(".-_").CONTAINS_ANY("listofdomains")

Nota: No se puede reescribir la cadena devuelta por la función STRIP_CHARS(<string>).

Las siguientes funciones quitan los caracteres coincidentes del principio y el final de una entrada de cadena determinada.

Función Descripción
<text>.STRIP_START_CHARS(s) Elimina los caracteres coincidentes desde el principio de la cadena de entrada hasta que se encuentra el primer carácter no coincidente y devuelve el resto de la cadena. Debe especificar los caracteres que quiere quitar como una cadena sencilla entre comillas. Por ejemplo, si el nombre de un encabezado es testLang y:/en_us:es su valor, HTTP.RES.HEADER (“testLang”) .STRIP_START_CHARS (“:”) elimina los caracteres especificados desde el principio del valor del encabezado hasta que se encuentra el primer carácter no coincidente e y devuelve sen_us: como cadena.
<text>.STRIP_END_CHARS Elimina los caracteres coincidentes desde el final de la cadena de entrada hasta el primer carácter no coincidente y devuelve el resto de la cadena. Debe especificar los caracteres que quiere quitar como una cadena sencilla entre comillas. Por ejemplo, si el nombre de un encabezado es testLang y:/en_us:es su valor, HTTP.RES.HEADER (“testLang”) .STRIP_START_CHARS (“:”) elimina los caracteres especificados desde el final del valor del encabezado hasta que se encuentra el primer carácter s no coincidente y devuelve: /_en_us como cadena.

Agregar una cadena a otra cadena

Puede utilizar la función APPEND() para agregar la representación de cadena del argumento a la representación de cadena del valor devuelto por la función anterior. La función anterior puede ser una que devuelva un número, long sin signo, doble, valor de tiempo, dirección IPv4 o dirección IPv6. El argumento puede ser una cadena de texto, número, long sin signo, doble, valor temporal, dirección IPv4 o dirección IPv6. El valor de cadena resultante es el mismo valor de cadena que se obtiene mediante el operador +.

Operaciones básicas sobre texto