Partager via


Fonctions StartsWith et EndsWith

S’applique à : Applications canevas Flux de bureau Colonnes de formule Dataverse Applications pilotées par modèle Power Pages Power Platform CLI

Permet de tester si une chaîne de texte commence ou se termine par une autre chaîne de texte.

Description

La fonction EndsWith teste si une chaîne de texte se termine par une autre.

La fonction StartsWith teste si une chaîne de texte commence par une autre.

Pour les deux fonctions, les tests ne sont pas sensibles à la casse si la source de données principale le prend en charge par défaut. Par exemple, les collections, Dataverse, SharePoint et SQL Server prennent en charge l’insensibilité à la casse par défaut. Ce n’est pas le cas d’Oracle. Leur valeur de retour est une valeur booléenne true ou false.

Utilisez EndsWith et StartsWith avec la fonction Filter pour rechercher des données au sein de votre application. Vous pouvez également utiliser l’opérateur in ou la fonction Search pour rechercher dans l’intégralité d’une chaîne de texte, et pas uniquement au début ou à la fin. Votre choix dépend des besoins de votre application et des fonctions pouvant être déléguées pour votre source de données particulière. Si l’une de ces fonctions ne peut pas être déléguée, un avertissement de délégation apparaît au moment de l’autorisation pour vous informer de cette limitation.

Syntaxe

EndsWith( Text, EndText )

  • Text : obligatoire. Texte à tester.
  • EndText : obligatoire. Texte à rechercher à la fin de Text. Si EndText est une chaîne vide, EndsWith renvoie la valeur true.

StartsWith( Text, StartText )

  • Text : obligatoire. Texte à tester.
  • StartText : obligatoire. Texte à rechercher au début de Text. Si StartText est une chaîne vide, StartsWith renvoie la valeur true.

Exemples

Formule Description Résultat
EndsWith( "Hello World", "world" ) Vérifie si "Hello, World" se termine par "world". Le test n’est pas sensible à la casse. true
EndsWith( "Good bye", "good" ) Vérifie si "Good bye" se termine par "good". L’argument EndText ("good") apparaît dans le texte, mais pas à la fin. false
EndsWith( "Always say hello", "hello" ) Teste si "Always say hello" se termine par "hello". true
EndsWith( "Bye bye", "" ) Teste si "Bye bye" se termine par une chaîne de texte vide (Len renvoie la valeur 0). Pour faciliter son utilisation dans les expressions Filter, EndsWith est défini de façon à renvoyer true dans ce cas. true
Formule Description Résultat
StartsWith( "Hello World", "hello" ) Teste si "Hello World" commence par "hello". Le test n’est pas sensible à la casse. true
StartsWith( "Good bye", "hello" ) Teste si "Good bye" commence par "hello". false
StartsWith( "Always say hello", "hello" ) Teste si "Always say hello" commence par "hello". "hello" apparaît bien dans le texte, mais pas au début. false
StartsWith( "Bye bye", "" ) Teste si "Bye bye" commence par une chaîne de texte vide (Len renvoie la valeur 0). Pour faciliter son utilisation dans les expressions Filter, StartsWith est défini de façon à renvoyer true dans ce cas. true

Expérience de recherche de l’utilisateur

Dans de nombreuses applications, vous pouvez entrer un ou plusieurs caractères dans une zone de recherche pour filtrer une liste d’enregistrements dans un jeu de données volumineux. Pendant que vous tapez, la liste présente uniquement les enregistrements qui correspondent aux critères de recherche.

Les autres exemples de cette rubrique présentent les résultats de la recherche d’une liste Clients contenant les données suivantes :

Exemple de liste de clients.

Pour créer cette source de données en tant que collection, créez un contrôle Button et définissez sa propriété OnSelect en utilisant la formule suivante :

ClearCollect(Customers, Table({ Name: "Fred Garcia", Company: "Northwind Traders" }, { Name: "Cole Miller", Company: "Contoso" }, { Name: "Glenda Johnson", Company: "Contoso" }, { Name: "Mike Collins", Company: "Adventure Works" }, { Name: "Colleen Jones", Company: "Adventure Works" }) )

Comme dans cet exemple, vous pouvez afficher une liste d’enregistrements dans un contrôle Gallery au bas d’un écran. En haut de l’écran, vous pouvez ajouter un contrôle Text input appelé SearchInput, pour permettre aux utilisateurs d’indiquer les enregistrements qui les intéressent.

Galerie de clients.

Quand l’utilisateur entre des caractères dans SearchInput, les résultats de la galerie sont automatiquement filtrés. Dans cet exemple, la galerie est configurée de manière à afficher les enregistrements pour lesquels le nom du client (pas celui de l’entreprise) commence par la séquence de caractères dans SearchInput. Si l’utilisateur tape co dans la zone de recherche, la galerie présente ces résultats :

Galerie de clients avec recherche.

Pour filtrer en fonction de la colonne Name, définissez la propriété Items du contrôle Gallery sur l’une de ces formules :

Formule Description Résultat
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Permet de filtrer la source de données Customers pour afficher les enregistrements dans lesquels la chaîne de recherche apparaît au début de la colonne Name. Le test n’est pas sensible à la casse. Si l’utilisateur tape co dans la zone de recherche, la galerie affiche Colleen Jones et Cole Miller. La galerie n’affiche pas Mike Collins, car la colonne Name de cet enregistrement ne commence pas par la chaîne de recherche. Exemple de StartsWith.
Filter( Customers, SearchInput.Text in Name ) Permet de filtrer la source de données Customers pour afficher les enregistrements dans lesquels la chaîne de recherche apparaît n’importe où dans la colonne Name. Le test n’est pas sensible à la casse. Si l’utilisateur tape co dans la zone de recherche, la galerie affiche Colleen Jones,Cole Miller et Mike Collins, car la chaîne de recherche apparaît quelque part dans la colonne Name de tous ces enregistrements. Exemple de SearchInput.Text dans le nom.
Search( Customers, SearchInput.Text, "Name" ) À l’image de l’opérateur in, la fonction Search permet de rechercher une correspondance n’importe où dans la colonne Name de chaque enregistrement. Notez que le nom de colonne doit être placé entre guillemets doubles. Exemple de SearchInput.Text avec le nom.

Vous pouvez étendre votre recherche de manière à inclure la colonne Company ainsi que la colonne Name :

Formule Description Résultat
Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) ) Permet de filtrer la source de données Customers pour afficher les enregistrements dans lesquels la colonne Name ou la colonne Company commence par la chaîne de recherche (par exemple, co). L’opérateur || a pour valeur true si l’une des fonctions StartsWith a pour valeur true. Filtrer par StartsWith.
Filter( Customers, SearchInput.Text in Name || SearchInput.Text in Company ) Permet de filtrer la source de données Customers pour afficher les enregistrements dans lesquels la colonne Name ou la colonne Company contient la chaîne de recherche (par exemple, co). Filtrer avec le texte de recherche dans le nom.
Search( Customers, SearchInput.Text, "Name", "Company" ) À l’image de l’opérateur in, la fonction Search permet de rechercher dans la source de données Customers les enregistrements dans lesquels la colonne Name ou la colonne Company contient la chaîne de recherche (par exemple, co). La fonction Search est plus facile à lire et à écrire que la fonction Filter si vous voulez spécifier plusieurs colonnes et plusieurs opérateurs in. Notez que le nom des colonnes doit être placé entre guillemets doubles. Filtrer avec le texte de recherche dans le nom, société.