Recherches récentes


Pas de recherche récente

Capitalise names with apostrophes

Avec réponse


Publication le 16 août 2022

How can we use liquid JS to change bob o’dwyer to Bob O’Dwyer Note first letter plus after apostrophe is capital

0

1

1 commentaire

Hey Sal. Here's one way to can accomplish that (whitespace added for clarity):

{% assign names = ticket.requester.name | split: ' ' %}
{% for name in names %}
    {% if name contains "'" %}
        {% assign split_name = name | split: "'" %}
        {% for part in split_name %}
            {{part | capitalize}}{% unless forloop.last %}'{% endunless %}
        {% endfor %}
    {% else %}
        {{name | capitalize}}
    {% endif %}
    {% unless forloop.last %}{{' '}}{% endunless %}
{% endfor %}

Here it is without spaces:

{% assign names = ticket.requester.name | split: ' ' %}{% for name in names %}{% if name contains "'" %}{% assign split_name = name | split: "'" %}{% for part in split_name %}{{part | capitalize}}{% unless forloop.last %}'{% endunless %}{% endfor %}{% else %}{{name | capitalize}}{% endif %}{% unless forloop.last %}{{' '}}{% endunless %}{% endfor %}

That last `unless` block has a placeholder with a single space text string because a regular space kept getting collapsed when I applied the code with a macro. If you use the code in a dynamic content placeholder, a regular space should work fine and you could even use the first code block by adding a dash inside the opening or closing tags where you want whitespace to be removed (see here for more info).

You'll probably need to test for edge cases, and the code doesn't account for user names formatted as "<last_name>, <first_name>", but hopefully it's enough to get you started.

0


Vous devez vous connecter pour laisser un commentaire.

Vous ne trouvez pas ce que vous cherchez ?

Nouvelle publication