Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

182
Views
Identificación de espacios en blanco en una variable twig

Tengo una situación en la que necesito identificar si hay un espacio en blanco en una variable en una plantilla twig y tratarlo de manera ligeramente diferente.

Los nombres de pila en esta aplicación se almacenan con las iniciales del segundo nombre en el campo de nombre de pila; no se almacenan por separado.

Lo que estoy tratando de lograr es esto: por lo general, la mayoría de los nombres de pila son una palabra, por ejemplo, "John" o "Susan" o algo similar. En algunos de estos casos, tenemos casos en los que la inicial del medio se almacena dentro de esta variable (por ejemplo, John J)

Siguiendo los estándares estándar de citas, debemos poder enumerar elementos como este:

 {{ surname }}, {{ given_name }}, ed.

De esta forma, aparecería como "Smith, John, ed". Esto normalmente está bien, sin embargo, en algunas situaciones, donde hay una inicial del medio, aparece como "Smith, John J, ed". - Esto es incorrecto. No puedo agregar un punto después del nombre de pila, ya que "Smith, John., ed" sería un estándar de cita incorrecto.

Lo que estoy tratando de hacer es identificar si un given_name contiene un espacio, seguido de una sola letra, y luego darle un formato diferente.

Algo como esto:

 {% if given_name [has a blank space preceding a single letter] %} {{ given_name }}., ed. {% else %} {{ given_name }}, ed. {% endif %}

¿Hay alguna manera de hacer esto con expresiones regulares dentro de twig, o hay otro método?

Gracias por adelantado

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Podemos traducir su requerimiento:

tiene un espacio en blanco que precede a una sola letra

En este pequeño algoritmo:

 {% set given_name = 'John J' %} {% set given_name_elems = given_name|split(' ') %} {% set size = given_name_elems|length %} {% if size >0 and given_name_elems[size-1]|length == 1%} { given_name }}., ed. {%else%} {{ given_name }}, ed. {%endif%}

Le sugiero que encapsule esta lógica en una función o en una macro.

Podrías intentarlo en este ejemplo de trabajo .

over 4 years ago · Santiago Trujillo Report

0

Esto es posible, pero no necesariamente va a manejar bien los casos extremos. Suponiendo que necesita hacer todo en twig, podría hacer algo como esto:

 {% set nameArray = given_name | split(' ') %} {% set first_name = nameArray[0] %} {% set middle_initial = nameArray[1] is defined ? " "~nameArray[1]~"." : ""%}

En este punto, `middle_initial ahora se establece en una cadena vacía o en la inicial del medio con el punto para que pueda generar el nombre completo como:

 {{ surname }}, {{first_name ~ middle_initial}}, ed
over 4 years ago · Santiago Trujillo Report

0

Puede usar una expresión regular con el operador de comparación de matches y agregar el punto si given_name coincide con el patrón.

 {{ given_name }}{% if given_name matches '/^.+ .$/' %}.{% endif %}
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!