Avatar billede jdjensen Juniormester
09. oktober 2021 - 15:01 Der er 9 kommentarer

Split værdi til fornavn og efternavn

Hej,

Jeg har et tekstfelt på min kontaktside hvor brugeren har mulighed for at indtaste sit fulde navn. Det kan dog også ske, at brugeren kun udfylder sit fornavn. Der kan altså forekomme flere variationer så som:

"Pernille"
"Pernille Petersen"
"Pernille M. Petersen"
"Pernille M. Petersen C."

Jeg har brug for at tage den værdi der indtastes og splitte den op på 2 variabler i Google Tag Manager på hhv. fornavn og efternavn.

Variablen der allerede returnerer det fulde navn fra formularen hedder:

"DLV - User Full Name"

Mit ønske er nu er finde ud af hvad der er fornavn og efternavn og splitte dette op på 2 nye variabler. Her har jeg klargjort 2 variabler:

"CJ - User First Name"
"CJ - User Last Name"

I bund og grund kan man nok sige, at det første ord er fornavnet og resten er efternavnet.

Jeg har forsøgt mig med dette script til "CJ - User First Name" men får p.t. ikke en værdi tilbage (undefined):

function() {
    return '{{DLV - User Full Name}}'.split(' ').slice(0, -1).join(' ');
  }

Jeg har forsøgt mig med dette script til "CJ - User Last Name" men får tilsyneladende det fulde navn tilbage efter formularen er indsendt:

function() {
    return '{{DLV - User Full Name}}'.split(' ').slice(-1).join(' ');
  }

Et par bemærkninger til ovenstående:

- Det er et krav at funktionen har en return statement ( return noget; )
- Med {{DLV - User Full Name}} i formularen indsættes værdien fra formularen.

Er der en som kan hjælpe mig med at modificere ovenstående scripts, så der også tages højde for de forskellige variationer som kan blive indtastet i dette formfelt, samtidig med at scriptet holdes 'light'?
Avatar billede claes57 Ekspert
09. oktober 2021 - 18:35 #1
Man burde kunne søge på 'mellemrum' fra højre, da efternavn står sidst. Men accepteres "Pernille M. Petersen C." så ville det give C. som efternavn.
Der skal bedre validering for indtastning til...
Avatar billede jdjensen Juniormester
09. oktober 2021 - 20:47 #2
Hej claes,

Tak for svar. :-) Jeg tror jeg skal have noget hjælp til begge scripts. Javascript er ikke lige min kop te og ovenstående scripts fandt jeg bare på et site. :-D
Avatar billede jdjensen Juniormester
09. oktober 2021 - 20:49 #3
- Men vil ikke være en fordel at sige, at første ord i strengen er fornavn og de øvrige efternavn.
Avatar billede claes57 Ekspert
10. oktober 2021 - 09:26 #4
Efter danske regler, så se første ord fornavn, sidste er efternavn, og resten er mellemnavne.
Så "Pernille M. Petersen C." vil blive til "Pernille" og "C"
Avatar billede jdjensen Juniormester
10. oktober 2021 - 12:42 #5
Jeg skal bruge det i international sammenhæng så mellemnavn og efternavn skal bare slås sammen til efternavn. Og så skal jeg stadig bruge noget hjælp til begge scripts.
Avatar billede jdjensen Juniormester
11. oktober 2021 - 19:30 #6
En herinde der kan hjælpe? :-)
Avatar billede ejvindh Ekspert
13. oktober 2021 - 19:27 #7
Fornavnet:
function() {
    return '{{DLV - User Full Name}}'.split(' ')[0];
  }

Resten:
function() {
    return '{{DLV - User Full Name}}'.split(' ').slice(1).join(' ');
  }
Avatar billede jdjensen Juniormester
13. oktober 2021 - 20:25 #8
Hej ejvindh,

Prøvede lige ovenstående men det gav mig ikke helt det rigtige resultat.

CJ - User First Name: Her blev det fulde navn sat ind som værdien
CJ - User Last Name: Her var værdien blank
Avatar billede ejvindh Ekspert
13. oktober 2021 - 21:31 #9
Nå, det var mystisk. For jeg testede det her, og da virker det. Kunne du evt. lægge din kode herind, så jeg kan se det nærmere an?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester