Citrix ADC

Grundlegende Operationen auf Text

Zu den grundlegenden Operationen für Text gehören Operationen für den Zeichenfolgenabgleich, das Berechnen der Länge einer Zeichenfolge und das Steuern der Groß- und Kleinschreibung. Sie können Leerzeichen in eine Zeichenfolge aufnehmen, die als Argument an einen Ausdruck übergeben wird, aber die Zeichenfolge darf 255 Zeichen nicht überschreiten.

String-Vergleichsfunktionen

In der folgenden Tabelle sind grundlegende Zeichenfolgenabgleichsoperationen aufgeführt, bei denen die Funktionen ein boolesches TRUE oder FALSE zurückgeben.

Funktion Beschreibung
<text>.CONTAINS(<string>) Gibt einen booleschen TRUE-Wert zurück, wenn das Ziel enthält <string>. Beispiel:http.req.url.contains(".jpeg")
<text>.EQ(<string>) Gibt einen booleschen TRUE-Wert zurück, wenn das Ziel exakt mit übereinstimmt <string>. Beispielsweise gibt der folgende Ausdruck ein boolesches TRUE für eine URL mit dem Hostnamen “myhostabc” zurück: http.req.url.hostname.eq("myhostabc")
<text>.STARTSWITH(<string>) Gibt einen booleschen TRUE-Wert zurück, wenn das Ziel mit beginnt <string>. Beispielsweise gibt der folgende Ausdruck ein boolesches TRUE für eine URL mit dem Hostnamen “myhostabc” zurück: http.req.url.hostname.startswith("myhost")
<text>.ENDSWITH(<string>) Gibt einen booleschen TRUE-Wert zurück, wenn das Ziel mit endet<string>. Beispielsweise gibt der folgende Ausdruck ein boolesches TRUE für eine URL mit dem Hostnamen “myhostabc” zurück: http.req.url.hostname.endswith("abc")
<text>.NE(<string>) Gibt einen booleschen TRUE-Wert zurück, wenn das Präfix nicht dem Zeichenfolgenargument entspricht. Wenn das Präfix einen Wert ohne Zeichenfolge zurückgibt, wird das Argument Funktion mit der Zeichenfolgendarstellung des vom Präfix zurückgegebenen Werts verglichen. Sie können die Funktionen mit SET_TEXT_MODE(IGNORECASE) or SET_TEXT_MODE(NOIGNORECASE)und mit ASCII- und UTF-8-Zeichensätzen verwenden.
<text>.GT(<string>) Gibt einen booleschen TRUE-Wert zurück, wenn das Präfix alphabetisch größer als das Zeichenfolgenargument ist. Wenn das Präfix einen Wert ohne Zeichenfolge zurückgibt, wird das Argument Funktion mit der Zeichenfolgendarstellung des vom Präfix zurückgegebenen Werts verglichen. Sie können die Funktionen mit SET_TEXT_MODE(IGNORECASE) oder SET_TEXT_MODE(NOIGNORECASE) und sowohl mit ASCII- als auch mit UTF-8-Zeichensätzen verwenden.
<text>.GE(<string>) Gibt einen booleschen TRUE-Wert zurück, wenn das Präfix alphabetisch größer oder gleich dem String-Argument ist. Wenn das Präfix einen Wert ohne Zeichenfolge zurückgibt, wird das Argument Funktion mit der Zeichenfolgendarstellung des vom Präfix zurückgegebenen Werts verglichen. Sie können die Funktionen mit SET_TEXT_MODE(IGNORECASE) oder SET_TEXT_MODE(NOIGNORECASE) und sowohl mit ASCII- als auch mit UTF-8-Zeichensätzen verwenden.
<text>.LT(<string>) Gibt einen booleschen TRUE-Wert zurück, wenn das Präfix alphabetisch kleiner als das Zeichenfolgenargument ist. Wenn das Präfix einen Wert ohne Zeichenfolge zurückgibt, wird das Argument Funktion mit der Zeichenfolgendarstellung des vom Präfix zurückgegebenen Werts verglichen. Sie können die Funktionen mit SET_TEXT_MODE(IGNORECASE) oder SET_TEXT_MODE(NOIGNORECASE) und sowohl mit ASCII- als auch mit UTF-8-Zeichensätzen verwenden.
<text>.LE(<string>) Gibt einen booleschen TRUE-Wert zurück, wenn das Präfix alphabetisch kleiner oder gleich dem String-Argument ist. Wenn das Präfix einen Wert ohne Zeichenfolge zurückgibt, wird das Argument Funktion mit der Zeichenfolgendarstellung des vom Präfix zurückgegebenen Werts verglichen. Sie können die Funktionen mit SET_TEXT_MODE(IGNORECASE) oder SET_TEXT_MODE(NOIGNORECASE) und sowohl mit ASCII- als auch mit UTF-8-Zeichensätzen verwenden.

Berechnen Sie die Länge einer Zeichenfolge

Die Operation <text>.LENGTH gibt einen numerischen Wert zurück, der der Anzahl der Zeichen (nicht Byte) in einer Zeichenfolge entspricht:

<text>.LENGTH

Beispielsweise möchten Sie möglicherweise Anforderungs-URLs identifizieren, die eine bestimmte Länge überschreiten. Es folgt ein Ausdruck, der dieses Beispiel implementiert:

HTTP.REQ.URL.LENGTH < 500

Nachdem Sie die Zeichen oder Elemente in einer Zeichenfolge gezählt haben, können Sie numerische Operationen darauf anwenden. Weitere Informationen finden Sie unter Erweiterte Richtlinienausdrücke: Arbeiten mit Daten, Zeiten und Zahlen.

Betrachten, ignorieren und Ändern von Groß- und Kleinschreibung

Die folgenden Funktionen arbeiten für die Groß-/Kleinschreibung (Groß- oder Kleinschreibung) der Zeichen in der Zeichenfolge.

Funktion Beschreibung  
<text>.SET_TEXT_MODE(IGNORECASE NOIGNORECASE) Diese Funktion schaltet die Groß- und Kleinschreibung für alle Textoperationen ein oder aus.
<text>.TO_LOWER Wandelt das Ziel für einen Textblock von bis zu 2 Kilobyte (KB) in Kleinbuchstaben um. Gibt UNDEF zurück, wenn das Ziel 2 KB überschreitet. For example, the string “ABCd:” is converted to “abcd:”.  
<text>.TO_UPPER Converts the target to uppercase. Gibt UNDEF zurück, wenn das Ziel 2 KB überschreitet. For example, the string “abcD:” is converted to “ABCD:”.  

Entfernt bestimmte Zeichen aus einer Zeichenfolge

Sie können die Funktion STRIP_CHARS (<string>) verwenden, um bestimmte Zeichen aus dem Text zu entfernen, der von einem Präfix für erweiterte Richtlinienausdrücke (die Eingabezeichenfolge) zurückgegeben wird. Alle Instanzen der Zeichen, die Sie im Argument angeben, werden aus der Eingabezeichenfolge entfernt. Sie können eine beliebige Textmethode für die resultierende Zeichenfolge verwenden, einschließlich der Methoden, die zum Abgleichen der Zeichenfolge mit einem Mustersatz verwendet werden.

Beispielsweise entfernt die Funktion STRIP\_CHARS(<string>) im Ausdruck CLIENT.UDP.DNS.DOMAIN.STRIP\_CHARS(".-\_") alle Punkte (.) , Bindestriche (-) und Unterstriche (_) vom Domainnamen, der durch das Präfix CLIENT.UDP.DNS.DOMAIN zurückgegeben wird. Wenn der zurückgegebene Domainname “ein.dom_ai_n-name” lautet, gibt die Funktion den String “adomainname” zurück.

Im folgenden Beispiel wird die resultierende Zeichenfolge mit einem Mustersatz namens “listofdomains” verglichen:

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

Hinweis: Sie können die Zeichenfolge, die von der Funktion STRIP_CHARS(<string>) zurückgegeben wird, nicht neu schreiben.

Die folgenden Funktionen entfernen übereinstimmende Zeichen vom Anfang und Ende einer bestimmten Zeichenfolgeneingabe.

Funktion Beschreibung
<text>.STRIP_START_CHARS(s) Entfernet übereinstimmende Zeichen vom Anfang der Eingabezeichenfolge, bis das erste nicht übereinstimmende Zeichen gefunden wird, und gibt den Rest der Zeichenfolge zurück. Sie müssen die Zeichen, die Sie entfernen möchten, als einzelne Zeichenfolge in Anführungszeichen angeben. Wenn der Name eines Headers beispielsweise TestLang lautet und:/en_us:sein Wert ist, entfernt HTTP.RES.HEADER (“TestLang”) .STRIP_START_CHARS (“:”) die angegebenen Zeichen vom Anfang des Wertes des Headers, bis das erste nicht übereinstimmende Zeichen e gefunden wird und zurückgeben_us: als Zeichenfolge.
<text>.STRIP_END_CHARS (s) Entfernet übereinstimmende Zeichen vom Ende der Eingabezeichenfolge bis zum ersten nicht übereinstimmenden Zeichen und gibt den Rest der Zeichenfolge zurück. Sie müssen die Zeichen, die Sie entfernen möchten, als einzelne Zeichenfolge in Anführungszeichen angeben. Wenn der Name eines Headers beispielsweise TestLang lautet und:/en_us:sein Wert ist, entfernt HTTP.RES.HEADER (“TestLang”) .STRIP_START_CHARS (“:”) die angegebenen Zeichen vom Ende des Werts des Headers, bis die ersten nicht übereinstimmenden Zeichen gefunden werden und gibt: /_en_us als Zeichenfolge zurück.

Hängen Sie eine Zeichenfolge an eine andere Zeichenfolge

Sie können die Funktion APPEND () verwenden, um die Zeichenfolgendarstellung des Arguments an die Zeichenfolgendarstellung des von der vorhergehenden Funktion zurückgegebenen Werts anzuhängen. Die vorhergehende Funktion kann eine sein, die eine Zahl, einen vorzeichenlosen Long, Double, einen Zeitwert, eine IPv4-Adresse oder eine IPv6-Adresse zurückgibt. Das Argument kann eine Textzeichenfolge, eine Zahl, eine vorzeichenlose Long-, Double-, Zeitwert-, IPv4-Adresse oder IPv6-Adresse sein. Der resultierende Zeichenfolgenwert ist derselbe Zeichenfolgenwert, der mit dem Operator + erhalten wird.

Grundlegende Operationen auf Text