Es taucht immer wieder das Problem auf, dass ich bei der Anzeige von Stückzahlen Ein-/Mehrzahl angeben muss, z.B.
<div data-type="label" data-device="Lights" data-get="lightsOn" data-pre-text="es ist/sind " data-post-text=" Lampe(n) eingeschaltet"></div>
Die Anzeige sieht entsprechend so aus
es ist/sind 0 Lampe(n) eingeschaltet
es ist/sind 1 Lampe(n) eingeschaltet
es ist/sind 2 Lampe(n) eingeschaltet
Schöner wäre natürlich
es sind 0 Lampen eingeschaltet
es ist 1 Lampe eingeschaltet
es sind 2 Lampen eingeschaltet
Ich habe es mit data-substitution versucht, aber hier scheint pre/post-text nicht beachtet zu werden
<div data-type="label" data-device="Lights" data-get="lightsOn" data-pre-text="es sind " data-post-text=" Lampen eingeschaltet" data-substituition=["sind 1 Lampen","ist 1 Lampe"]></div>
Ergebnis
es sind 0 Lampen eingeschaltet
es sind 1 Lampen eingeschaltet
es sind 2 Lampen eingeschaltet
Wie löst ihr so etwas ?
Mit RegEx im data-substitution geht das.
<div data-type="label" data-device="ftuitest" data-substitution='["^([02-9]+|[0-9]{2,})$", "$1 Lampen", "^1$", "1 Lampe"]'></div>
pre-text und post-text wird erst nach der data-substitution Behandlung angefügt.
Zitat von: setstate am 15 Oktober 2019, 20:55:23
Mit RegEx im data-substitution geht das.
<div data-type="label" data-device="ftuitest" data-substitution='["^([02-9]+|[0-9]{2,})$", "$1 Lampen", "^1$", "1 Lampe"]'></div>
pre-text und post-text wird erst nach der data-substitution Behandlung angefügt.
auf die Idee bin ich noch gar nicht gekommen ...
sähe dann bei mir also so aus:
<div data-type="label" data-device="Lights" data-get="lightsOn" data-pre-text="es " data-post-text=" eingeschaltet" data-substituition=["^([02-9]+|[0-9]{2,})$", "sind $1 Lampen", "^1$", "ist 1 Lampe"]></div>
Ich muss unbedingt in RegEx fitter werden ... gibt es da eine einigermäßen verständliche Dokumentation (zumal RegEx meines Wissens ja nicht überall gleich ist ...)
Hallo,
https://regex101.com/
(https://regex101.com/)
sollte dir helfen.
Gruß
Eisix