L'opérateur de contenu / Contains operator : contains
L'opérateur de contenu a la particularité de comparer une section d'une chaîne de caractères à une chaîne de caractères. Le résultat renvoie une valeur booléenne.
Les syntaxes
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
Contient |
contains |
Syntaxe par défaut string contains string Syntaxe Fonctionnelle contains(string,string) |
Nombre d'opérandes : 2 | Résultat : boolean |
Le résultat de l'opération sera toujours une valeur de type booléenne.
Les deux opérandes doivent être 2 chaînes de caractères :
"Blogger"
contient"Blog"
.
Les opérandes peuvent être :
Une valeur explicite.
Une donnée.
Le résultat d'une expression Blogger (une opération imbriquée).
L'opération peut être imbriquée dans une autre opération qui accepte une valeur de type boolean.
Attention ! Le terme
contains
est également un opérateur « membres » qui compare une valeur à un tableau.
Quelques exemples
2 valeurs explicites
<b:if cond='"Blogger" contains "Blog"'> </b:if>
Le résultat de l'opération sera : true
.
La chaîne de caractères Blog
est contenu dans Blogger
.
Une valeur explicite et une donnée
<b:if cond='data:blog.title contains "Code"'> </b:if>
Si la valeur de la donnée est Blogger Code PE
, le résultat de l'opération sera : true
.
La chaîne de caractères Code
est contenu dans Blogger Code PE
.
2 données
<b:if cond='data:blog.pageTitle contains data:blog.title'> </b:if>
Le résultat de l'opération sera : true
.
Le nom du blog est toujours contenu dans le titre de la page.
Imbrication dans une opération Lambda
<b:eval expr='data:posts count (p => p.title contains "Toto")'/>
Le résultat de l'opération sera le nombre de posts contenant la chaîne de caractères Toto
.
Imbrication dans une opération ternaire
<b:eval expr='data:view.description contains "patates" ? "Temps de préparation : minimum 2 heures" : "Temps de préparation : moins de 2 heures"'/>
L'opération affichera l'une des 2 valeurs définies dans les 2e et 3e opérandes.
Imbrication dans une opération logique
<b:if cond='data:view.title contains "Toto" and data:view.isPost'> </b:if>
Le résultat sera true
si le titre contient la chaîne de caractères Toto
et si la page courante est un article.
Les autres opérateurs
+ (concatenate)
+ (addition)
- (substraction)
* (multiplication)
/ (division)
% (modulus)?: (selector)
and (&&)
or (||)
not (!)eq (==)
neq (!=)
lt (<)
lte (<=)
gt (>)
gte (>=)appendParams
fragment
params
pathin
contains (array)contains (string)
format
limit / take
skip / offset
toresizeImage
sourceSetsnippet
any
all
none
count
map / select
filter / where
first