Vor Kurzem aufgerufene Suchen


Keine vor kurzem aufgerufene Suchen

Capitalise names with apostrophes

Beantwortet


Gepostet 16. Aug. 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 Kommentar

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


Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.

Sie finden nicht, wonach Sie suchen?

Neuer Post