Unzulässige Zeichen setzen oder replace(string," " ","")
Hallo zusammen,
gibt es eine Möglichkeit in Ninox einem Textfeld zu sagen welche Zeichen unzulässig sind? So ein Option vermisse ich.
Ich habe ein Feld in dem keine double quotes also Anführungszeichen " drin sein dürfen. Jetzt kann man das ja nicht mit replace rauskriegen weil replace(string," " ", "") nicht funktioniert Thema "Escape-Sequenz".
Hab keine Möglichkeit gefunden also habe ich eine Funktion geschrieben. var newJobname := "";
function validateStrings(Jobname : text) do
let validChars := ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", " ", "!", "ä", "ü", "ö", "Ä", "Ö", "Ü", "&", "+", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
for char in Jobname do
for validChar in validChars do
if char = validChar then
newJobname := newJobname + char
end
end
end;
newJobname
end;
validateStrings(Jobname)
Würd mich echt interessieren ob man das einfacher lösen kann.
10 Antworten
-
Hallo Benjamin, ich weiß leider nicht, wie man bei "regex" doppelte Anführungszeichen angibt, aber man könnte den umgekehrten Weg gehen und alle erlaubten Zeichen von der Ersetzung durch "" ausschließen:
Textfeld := replacex(Textfeld, "[^äöüÄÖÜ!&?,. \w]", "")
Oder das Anführungszeichen aus einem (versteckten) Textfeld in eine Variable einlesen und diese beim normalen "replace" als Suchstring angeben. Das müsste eigentlich auch funktionieren:
Suchstring := Suchtextfeld;
Textfeld := replace(Textfeld, Suchstring, "")
-
Gerade noch mal probiert. So müsste es auch gehen:
Textfeld := replace(Textfeld, """", "")
-
was ist mit:
*
replacex(Text, "[""]", "")
*
zumindest in Deinem Beispiel bleiben die Einfassungen stehen und alle Anführungszeichen werden gelöscht. Mirko
-
Ja, das funktioniert genauso wie die vier Anführungszeichen nacheinander. Letztere aber eben auch mit dem normalen "replace".
Was heißt "bleiben die Einfassungen stehen und alle Anführungszeichen werden gelöscht."? Und in welchem Beispiel?
-
Da ich nicht so der Experte für reguläre Ausdrücke bin basiert meine Version auf 90% trial and error. Und ich war der Meinung, dass es nur die doppelten Anführungszeichen findet, geht aber auch einfache in meinen Tests. Einfassungen war der falsche Begriff, ich meinte das Eingefaßte ;-). Das Beispiel ist das obige Array, welches ich zum Testen kopiert habe.
-
Die replacex()-Funktion zum entfernen von doppelten Anführungszeichen und ersetzen durch ein einzelnes Anführungszeichen lautet:
replacex(Ausgangstext, "[\""]{2}", """")
-
Hatte nicht vollständig gelesen.
Alle Anführungszeichen zu entfernen geht mit:
replacex(Ausgangstext, "[\""]", "")
-
Ja
replacex(Ausgangstext, "[\""]", "")
funktioniert hervorragend.
Danke Uwe und allen anderen auch. -
I am trying to use replace('E-mail', "<", "") in Trigger after update but this replace function is not working in my case. I actually want to get string between these brackets <email>. Is there any solution for this?
-
replace(extractx('E-mail', "(?=\<)(.*?)(?=\>)"), "<", "")
Content aside
- vor 2 JahrenZuletzt aktiv
- 10Antworten
- 1204Ansichten