Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

176
Vistas
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

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

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 .

about 4 years ago · Santiago Trujillo Denunciar

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
about 4 years ago · Santiago Trujillo Denunciar

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 %}
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda