Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Replace Funktion in Blockly

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Replace Funktion in Blockly

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @Rushmed last edited by mickym

      @rushmed sagte in Replace Funktion in Blockly:

      Dafür gibt es auch ein JS function - wie Du das in Blockly einbindest weiß ich nicht weil ich das nicht nutze:

      decodeURI("%C3%84");
      

      d11df7e4-3269-4aaf-905a-ad0cbc04e434-image.png

      Also einfach Dein String der URL der decoodeURI() Funktion übergeben.

      https://www.w3schools.com/jsref/jsref_decodeuri.asp

      decodeURI("%C3%84\n\
      %C3%96\n\
      %C3%9C\n\
      %C3%9F\n\
      %C3%A4\n\
      %C3%B6\n\
      %C3%BC\n\
      %E1%BA%9E\n\
      Leerzeichen -%20-"
      );
      

      545ca7ea-1d34-4e7f-9f59-23adaa3ecec3-image.png

      Also einfach den ganzen Text - String decodeURI übergeben und die Sonderzeichen werden ersetzt.

      R 1 Reply Last reply Reply Quote 0
      • R
        Rushmed Most Active @mickym last edited by Rushmed

        @mickym Wenn ich jetzt mit:

        let str_1 = Eingabe;
        str_1 = str_1.decodeURI(Eingabe);
        return str_1;
        

        und
        f7bf7bfa-35ca-498a-bfec-668d502a8942-grafik.png
        probiere erhalte ich:

        21:04:17.905	error	javascript.0 (19856) script.js.Alexa_Handy_Benachrichtigungen: TypeError: str_1.decodeURI is not a function
        21:04:17.906	error	javascript.0 (19856) at DecodeURI (script.js.Alexa_Handy_Benachrichtigungen:15:19)
        21:04:17.906	error	javascript.0 (19856) at script.js.Alexa_Handy_Benachrichtigungen:69:19
        21:04:17.906	error	javascript.0 (19856) at script.js.Alexa_Handy_Benachrichtigungen:73:3
        
        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @Rushmed last edited by

          @rushmed

          Du musst eine richtige Funktion definieren - wie gesagt bin kein Blockly spezi:

          function decode(Eingabe){
              return decodeURI(Eingabe);
          }
          

          So ich habe mal die function decode genannt.

          1 Reply Last reply Reply Quote 0
          • R
            Rushmed Most Active last edited by Rushmed

            @mickym Damit kommt zumindest undefined zurück.
            Warum war in´m ersten Post dieses Freds die Definition einer Funktion nicht notwendig?

            mickym 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @Rushmed last edited by mickym

              @rushmed sagte in Replace Funktion in Blockly:

              @mickym Damit kommt zumindest undefined zurück.

              Ich probier das auch gerade mit Blockly - kenn mich da aber nicht aus. Probiere es gerade so:

              return decodeURI(Eingabe);
              
              R 1 Reply Last reply Reply Quote 1
              • R
                Rushmed Most Active @mickym last edited by Rushmed

                @mickym Sensationell, das sieht schonmal gut aus.

                Danke.

                mickym 1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @Rushmed last edited by

                  @rushmed sagte in Replace Funktion in Blockly:

                  @mickym Sensationell, das sieht schonmal gut aus.

                  Danke.

                  Na ich glaub ich hab das auch nun kapiert mit dem Blockly:

                  41cad485-b55b-4649-8738-ad981102d160-image.png

                  Aber ich finde es doch umständlich. Wird nicht mein Tool. 😉

                  R 1 Reply Last reply Reply Quote 0
                  • R
                    Rushmed Most Active @mickym last edited by

                    @mickym So richtig klappts noch nicht.
                    Ich bekomme bspw. diesen String:

                    %E2%81%A8Prinzessin%E2%81%A9.Hey%20yo.%evtprm4.%evtprm5.%E2%81%A8Prinzessin%E2%81%A9
                    

                    und das Script sagt mir:

                    
                    21:48:05.317	error	javascript.0 (19856) script.js.Alexa_Handy_Benachrichtigungen: URIError: URI malformed
                    
                    mickym 1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @Rushmed last edited by mickym

                      @rushmed Ja dann stimmt was an dem String nicht. Der Fehler kommt nur wenn was nicht klar ist. Die %ev mag er nicht!
                      Wenn man die % aus dem %ev raus macht geht es.
                      Sonst versucht das Teil das halt zu %ev interpretieren und ev ist nun mal kein HEX Wert

                      R 1 Reply Last reply Reply Quote 0
                      • R
                        Rushmed Most Active @mickym last edited by

                        @mickym Ok, danke. Ich probier da morgen nochmal rum.

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @Rushmed last edited by mickym

                          @rushmed sagte in Replace Funktion in Blockly:

                          @mickym Ok, danke. Ich probier da morgen nochmal rum.

                          Nun wie gesagt - weiss nicht woher der String ist - aber natürlich wird ein % im HTML immer codiert - wenn ich im originalen Text ein % vorhanden war - dann muss es auch richtig codiert werden.

                          Falls also die % Zeichen Bestandteil des Strings sein sollen, dann muss der String so heißen:

                          %E2%81%A8Prinzessin%E2%81%A9.Hey%20yo.%25evtprm4.%25evtprm5.%E2%81%A8Prinzessin%E2%81%A9
                          

                          Dann kommt das auch fehlerfrei raus:

                          2f0bce68-0b0b-436c-92bd-0d9f93589b67-image.png

                          Wenn Du solche Texte im Original hast - dann musst Du die halt umgekehrt richtig codieren lassen. Es gibt ja auch die Codierfunktion also encodeURI()

                          af9c29f8-24fc-4bd2-9f47-6a54d47627e4-image.png

                          Also einen String nur teilweise codieren bzw. decodieren funktioniert nicht - entweder konsequent alles oder sonst nichts. Sonst musst halt wieder mit Stringfunktionen arbeiten.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          851
                          Online

                          31.7k
                          Users

                          79.8k
                          Topics

                          1.3m
                          Posts

                          blockly javascript
                          5
                          24
                          3124
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo