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 :
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.
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 :
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. | |
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. | |
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. |
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. | |
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). | |
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. |