+49 durch 0 ersetzen
Hallo Zusammen. Wir haben im Ninox ein Telefonfeld in dem Telefonnummern im Format "+49 3443 123 456" eingetragen werden. Folgender Code funktioniert und führt dazu, dass keine Sonder- und Leerzeichen mehr drinnen stehen:
Telefon := replacex(Telefon, "\D", "g", "");
Nun möchte ich gerne, dass das "+49" durch "0" ersetzt wird.
Folgenden Code habe ich ausprobiert, der funktioniert aber leider nicht:
Telefon := replacex(Telefon, "+49", "0");
Danke für eure Hilfe :)
13 Antworten
-
Hallo Paul, versuch es ohne x:
Telefon := replace(Telefon, "+49", "0")
Leo
-
Hallo Leo, funktioniert super, danke!
Gibt es nun weiterführend noch eine Möglichkeit beide Codes zu verbinden? (Nacheinander funktionieren sie leider nicht):
Telefon := replacex(Telefon, "\D", "g", "");
Telefon := replace(Telefon, "+49", "0")
-
Hallo Paul,
einzige Möglichkeit:
---
Telefon := replace(replacex(Telefon, "\D", "g", ""), "+49", "0")
---
-
Hallo Leo, leider funktioniert das so, als wenn ich es hintereinander setze. Er nimmt nur die Sonderzeichen raus, und lässt sozusagen die +49 als 49 stehen.
-
Habs! So funktionierts:
Telefon := replace(replacex(Telefon, "\D", "g", ""), "49", "0")
-
So wird es aber blöd wenn deine Nummern in der Mitte 49 haben:
+49 4943 123 4956 -> 0 043 123 056
dann lieber so:
---
replacex(replace(Telefon, "+49", "0"), "\D", "g", "")
---
Leo
-
Hallo Leo, stimmt, daran hatte ich nicht gedacht.
Leider verändert er mit deinem letzten Code nichts.
-
Gibt es vielleicht eine Möglichkeit, dass er die ersten 3 Stellen austauscht?
-
Ich habs, manchmal sieht man echt den Wald vor lauter Bäumen nicht.
So rum funktionierts:
Telefon := replace(Telefon, "+49", "0");
Telefon := replacex(Telefon, "\D", "g", "");
-
...nur mal so: bei \D kann es sein, dass unerwünscht auch Leerzeichen, Schrägstriche o.ä. gematcht werden, treffsicher wäre (\+49) mit Gruppierungsklammern und dem Backslash, der das "+" wieder zum Literal umwandelt, weil es ja bei den regulären Ausdrücken eine Funktion hat. Also:
*
Telefon := replacex(Telefon, "(\+49)", "g", "")
-
Vielleicht hätte ich mal von Anfang an lesen sollen... Bringt also keinen Mehrwert für Dich.
*
replacex(replacex(Telefon, "(\+49)", "g", "0"), "\D", "g", "")
-
Wie wäre dann die Formel wenn man genau anders herum die "0" duch die +49 ersetzten möchte?
Ich hätte sogar noch ein Feld (Land) wo die Länderkennung drin steht. Könnte man das mit abgragen?
So nach dem Motto "wenn "Land" = "DE" dann ersetzte "0" mit "+49"
Da ich allerdings nur minimale Datensätze ausserhal Deutschlands habe könnte ich die wenigen notfalls auch von Hand ändern...
Gruß und danke im vorraus
Dirk
-
@Dirk Das würde so funktionieren:
let Land := "DE";
let Telefon := "02384076230984679";
let vorwahl := "+49";
switch Land do
case "DE": vorwahl := "+49"
case "CH": vorwahl := "+41"
end;
replacex(Telefon, "(^0)", vorwahl);
Resultat: +492384076230984679
Das "^0" trifft nur zu wenn die 0 am Anfang der Telefonnummer steht, tauscht also nicht auch Nullen in der Mitter der Nummer aus.
Content aside
- vor 2 JahrenZuletzt aktiv
- 13Antworten
- 1011Ansichten