Splitsen tekstvelden

Beste mensen, ik heb gezocht, maar ik kon het niet vinden.
Is er een mogelijkheid om een tekstveld waarin drie woorden zitten te splitsen zodat ik een tekstveld van 2 woorden en een van 1 woord krijg?
Een voorbeeld: “Slaapkamer airco Uit” in “Slaapkamer airco” en “Uit”.

Wat bedoel je met een tekstveld?
een flowkaart argument?
Of alleen de tekst?

the Better Logic App of HomeySscript laat je scripts maken.

Arie (toch niet de Arie die ooit bij IP werkte?),
ik bedoel dat ik de inhoud van een tekstveld, of logic zo je wilt, wil verplaatsen naar twee nieuwe tekstvelden.
Ik start met één tekstveld, laten we zeggen Logic1 met de waarde “woord1 woord2 woord3”.
Het resultaat dat ik wil bereiken is een veld Logic2 met de waarde “woord1 woord2” en een ander veld Logic3 met de waarde “woord3”.
Ik heb even gekeken naar Beter Logic, maar misschien heb ik deze functie gemist?

In de app settings van BLL kun je functies toevoegen.

functienaam: split3words.
functie:

function(s) {
  let a = s.split(' ');
  return {words:a, splits:[a[0] + ' ' + a[1], a[2]]};
}

Deze kun je nu uitvoeren in elke BLL expressie kaart:
image

JSON.stringify(split3words("hallo daar dan"))

Nu kun je deze lezen met de JSON kaarten of met de JSON Handler App = minder kaarten:

Deze geeft je meerdere tokens: Tekst 1 is gevuld met de eerste 2 woorden, tekst 2 met het laatste woord.

2 Likes

Dank je wel Arie!
Het ziet er nog een beetje ingewikkeld uit voor mij die zijn laatste regel code in 1986 heeft geschreven in Cobol. Maar hier ga ik denk ik uit komen.

1 Like

Het is deze oude Cobol-krasser gelukt, nogmaals dank!

2 Likes

Haha, top en graag gedaan!