7
votes

Comment faire de plusieurs caractères multiples à Coldfusion pour CLeop?

J'ai une variable de chaîne qui a un utilisateur dynamique saisi du texte

ex: -


0 commentaires

3 Réponses :


0
votes

Ne pas utiliser la liste intégrée * () Fonctions, non. Ils traitent tous l'argument de délimiteur sous forme d'ensemble de caractères plutôt que d'une chaîne littérale. Mais vous pouvez, bien sûr, utiliser les fonctions de chaîne ordinaire (par exemple, trouver () , moyen () , etc.) pour faire l'analyse de vous.

aussi, Pour ce que ça vaut la peine, votre boucle peut être écrite plus compacte (tant que vous ne vous souciez pas des indices numériques de chaque élément de liste) comme: xxx


0 commentaires

13
votes

Il n'y a pas de manière directe de le faire. Cependant, il y a quelques façons différentes de l'accomplir.

Ce que je fais habituellement est de remplacer le délimiteur multicharatage avec un seul caractère. J'utilise habituellement la cloche (CHR (7)) car elle n'est pas téléchargée sur un clavier standard. P> xxx pré>

alors, vous pouvez boucler sur la liste: p>

<cfloop list="#list#" index="i" delimiters="#chr(7)#">
    <br />#i#
</cfloop>


3 commentaires

J'utilise CHR (30) (séparateur d'enregistrement) de la même manière. Semble moins dangereux et le personnage a été conçu pour seulement cela. Préférence personnelle, je suppose.


Il y a aussi listchangedelims . Utilisation de votre exemple:


ListCHANGEDELIMS traite "SP" comme liste de délimiteurs "S" et "P" à la place.



1
votes

Utilisez .split () fonction à la place.

Par exemple, vous pouvez diviser une chaîne par un délimiteur de chaîne comme celui-ci: xxx


1 commentaires

Soyez juste au courant Split (Regex) Accepte une expression régulière. Vous devez donc échapper à des caractères spéciaux, comme le caret ^ dans l'expression ci-dessus, c'est-à-dire thestring.split ("& \ ^ &") . En outre, CF10 prend en charge Délimisseurs multi-caractères (enfin!).