![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| testa en sträng ... | Kaminski | UNIX for Dummies Frågor & Svar | 2 | 02-12-2008 05:37 |
| Med Regex Spliting strängen i Alfanumerisk och Numerisk del | ozgurgul | Shell-programmering och Skript | 1 | 06-30-2007 09:52 |
| Alfanumerisk sträng Operations | lakshmikanth | UNIX for Dummies Frågor & Svar | 3 | 01-05-2007 06:55 |
| string test? | hedrict | UNIX for Dummies Frågor & Svar | 9 | 03-29-2002 03:57 |
| matchningsalternativ alfanumeriska strängen | sskb | Shell-programmering och Skript | 4 | 12-12-2001 10:48 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Okej jag kommer att låta användare input utrymmen samt
![]() Jag har en mental block. Jag har gjort några sökningar men har icke hittat något som jag förstår (en gåva! Alpha: och awk). I grunden vill jag ge användaren möjlighet att skriva in lite text som kommer att gå som ett fält i en platt fil (som delimeted av:). Jag vill begränsa detta till 50 tecken (jag tror att jag kan använda Typeset-Z50 för detta) Jag vill bara az, AZ, (mellanslag) och siffror. Whats det bästa sättet att validera input? |
|
||||
|
Ett sätt är att använda tr att ta bort oönskade typer av tecken. -DC tar bort allt utom de röding typer som du anger. [: alnum;] är alfanumeriska, så om du kontrollera längden av strängen bör det vara oförändrad om den innehåller bara röding du vill ha med.
Kod:
# t is the input string, ck is a variable to check the contents of t
t="thisisa555ctest"
ck=$( echo "$t" | tr -dc '[:alnum:]')
if [[ ${#t} -eq ${#ck} ]]; then
echo "ok"
else
echo "not ok"
exit 1
fi
# t is all good chars at this point
# check length of t
if [[ ${#t} -gt 50 ]]; then
echo "not ok too long"
fi
|
|
||||
|
Tror jag har knäckt den
Jag använder den här koden. De tester jag gjort verkar fungera.
men sant göra klar echo Enter "Text: \ c" Läs t fall $ t i + ([az] | [AZ] | [0-9] | [ ''])) echo test strängen är okej bryta ;; *) echo test sträng okej inte sömn 2 ;; ESAC gjord |