Herakles
Profifragensteller
Moin!
Ich möchte mit busybox die Zeichenkette, die entsteht, wenn ich mit der SHIFT-Taste den Ziffernblock oben an der Tastastur von 1 bis 8 entlanggehe, analysieren. Hintergrund: ich habe ein kleines Webinterface programmiert, welches auf einer Webpage ein Passwort entgegennehmen soll, was natürlich alle möglichen Zeichen beinhalten könnte. Verarbeitet wird das ganze mit Javascript bzw. haserl, der Zeichenfolge als regulärer Ausdruck genutzt.
Der String sieht also wie folgt aus:
Ich versuche nun etwa so etwas hier:
Es sollen also alle Zeichen, die in der Metaklasse [
rint:] enthalten sind, aus dem String herauszuholen. Falls das klappt, sind alle Zeichen in meinem String in Ordnung und akzeptabel, falls nicht, erhalte ich einen Fehler.
Wenn ich nun aber einfach mal folgendes mache:
...klappt das natürlich genausowenig, wie ein
Hinbekommen könnte ich es hiermit:
echo \!\"\§\$\%\&\/\(
Hier sind alle Zeichen "escaped" und der String wird korrekt interpretiert. Leider jedoch bekomme ich den string nicht in der Form geliefert, sondern natürlich in seiner Reinform !"§$%&/(
Ich kann kaum vom User meiner kleinen Webseite verlangen, alle Sonderzeichen mit einem "\" zu escapen.
Selbstverständlich könnte ich meinen String durch awk oder sed schicken, nur dafür benötige ich eben den String auf stdin, was ich mit echo(1) machen würde und was mir die genannten Probleme liefert.
Kann mir jemand bei meinem Problem helfen?
Danke im Voraus, Herakles
Ich möchte mit busybox die Zeichenkette, die entsteht, wenn ich mit der SHIFT-Taste den Ziffernblock oben an der Tastastur von 1 bis 8 entlanggehe, analysieren. Hintergrund: ich habe ein kleines Webinterface programmiert, welches auf einer Webpage ein Passwort entgegennehmen soll, was natürlich alle möglichen Zeichen beinhalten könnte. Verarbeitet wird das ganze mit Javascript bzw. haserl, der Zeichenfolge als regulärer Ausdruck genutzt.
Der String sieht also wie folgt aus:
Code:
!"§$%&/(
Ich versuche nun etwa so etwas hier:
Code:
echo !"§$%&/( | sed -e "s/[:print:]//g"
Es sollen also alle Zeichen, die in der Metaklasse [
rint:] enthalten sind, aus dem String herauszuholen. Falls das klappt, sind alle Zeichen in meinem String in Ordnung und akzeptabel, falls nicht, erhalte ich einen Fehler.Wenn ich nun aber einfach mal folgendes mache:
Code:
echo !"§$%&/(
...klappt das natürlich genausowenig, wie ein
Code:
echo "!"§$%&/("
Hinbekommen könnte ich es hiermit:
echo \!\"\§\$\%\&\/\(
Hier sind alle Zeichen "escaped" und der String wird korrekt interpretiert. Leider jedoch bekomme ich den string nicht in der Form geliefert, sondern natürlich in seiner Reinform !"§$%&/(
Ich kann kaum vom User meiner kleinen Webseite verlangen, alle Sonderzeichen mit einem "\" zu escapen.
Selbstverständlich könnte ich meinen String durch awk oder sed schicken, nur dafür benötige ich eben den String auf stdin, was ich mit echo(1) machen würde und was mir die genannten Probleme liefert.
Kann mir jemand bei meinem Problem helfen?
Danke im Voraus, Herakles