ArrayContainsNoCase |
Tableau ne contient pas de case |
|---|---|
| Lucee | |
Syntaxe
| ArrayContainsNoCase( haystack=array, needle=object, substringMatch=boolean ); |
Paramètres
| Nom | Description |
|---|---|
| haystack | Ce paramètre permet de spécifier le tableau dans lequel la fonction va rechercher un élément. C'est le tableau "cible" de la recherche. |
| needle | Ce paramètre permet de définir la valeur ou sous-chaîne de caractères à rechercher dans le tableau. La comparaison ne tient pas compte de la casse des lettres. |
| substringMatch | Ce paramètre permet d'indiquer si la recherche doit inclure les correspondances partielles. Si défini à true, un élément du tableau contenant la sous-chaîne spécifiée sera considéré comme une correspondance. Si défini à false, seule une correspondance exacte (mais insensible à la casse) sera acceptée. |
Description
Cette fonction permet de retourner la position du premier élément du tableau dont la valeur de chaîne de caractères contient la sous-chaîne de caractères passée (non sensible à la casse), ou 0 si aucun élément de ce type n'est trouvé.
Remarques
- La fonction ArrayContainsNoCase() est une variante insensible à la casse de ArrayContains(). Elle permet de rechercher un élément dans un tableau sans tenir compte des majuscules et minuscules, ce qui la rend particulièrement utile pour manipuler des données textuelles issues de saisies utilisateurs, où la casse peut varier.
- Le paramètre haystack représente le tableau cible dans lequel la recherche est effectuée. Il peut contenir des chaînes de caractères de toute nature (noms, étiquettes, messages,...). Lucee parcourt chaque élément du tableau et compare leur contenu au needle, en ignorant les différences entre lettres majuscules et minuscules.
- Le paramètre needle correspond à la valeur recherchée dans le tableau, généralement une chaîne de caractères. L'avantage ici est que la comparaison est non sensible à la casse - ainsi, rechercher "bonjour", "Bonjour" ou "BONJOUR" donnera le même résultat, ce qui améliore la robustesse du code.
- Le paramètre substringMatch ajoute une flexibilité supplémentaire à la fonction. Lorsqu'il est défini à true, Lucee effectue une recherche partielle : si la sous-chaîne fournie est contenue dans un élément du tableau (peu importe la casse), la fonction considère que la correspondance est trouvée. Cela permet de faire des recherches floues ou partielles.
- Cette fonction retourne l'index (position) du premier élément correspondant à la recherche. Si aucun élément du tableau ne correspond, elle renvoie 0. Ce comportement est cohérent avec les conventions de nombreuses fonctions de manipulation de tableaux dans Lucee, ce qui facilite son intégration dans des scripts complexes.
- L'utilisation d'une comparaison insensible à la casse rend cette fonction particulièrement utile dans les systèmes multilingues ou interactifs, où les utilisateurs peuvent saisir des données avec des variations typographiques. Par exemple, dans une liste de noms, elle permet de retrouver "Dupont", "DUPONT" ou "duPont" sans distinction.
- Toutefois, il faut noter que ArrayContainsNoCase() est moins performante que sa version sensible à la casse (ArrayContains()) lorsqu'elle est appliquée à de grands tableaux. En effet, la comparaison insensible à la casse nécessite des conversions temporaires de chaînes en minuscules ou majuscules avant la comparaison, ce qui ajoute un léger coût de calcul.
- En pratique, cette fonction est très utile pour simplifier la logique conditionnelle et éviter les erreurs liées aux différences de casse dans les données. Elle permet d'écrire un code plus lisible et plus tolérant, réduisant la nécessité d'utiliser des méthodes de transformation de texte (LCase(), UCase()) avant la comparaison.
Exemple
Voici des exemples typiques d'utilisation de cette fonction :
- <cfscript>
- words = [ 'Bonjour' , 'le monde' ];
- positionOfWorld = ArrayContainsNoCase( words, 'le monde' );
- Echo( positionOfWorld ); // sorties 2
- </cfscript>
Dernière mise à jour : Jeudi, le 14 Août 2025