I'm trying to make a script to check that the username is valid...but unfortunately my knowledge is still low...
Can you help me??
What am I doing wrong??
Thanks
Script I'm using (maybe it's all wrong..)
:local userName1 "@.-_012abcABC" ; # valid
:local userName2 " !|#~%&/()=?'`^[]+*{},;:<>" ; # invalid
:local userName3 "ºª¡·¬¿´¨ñÑçÇ€" ; # not printable
:local userName4 "][" ; # problems
:local userName5 "[]" ; # problems
:global checkString do={
:local stringValue $1
:local stringName $2
:local isValid true
:local invalidChars "[ ºª\\!|\"·#\$~%&¬/()='?¿¡`^+*´¨çÇñÑ,;:<>{}\\[\\]]"
#:local invalidChars "[ ºª\\!|\"·#\$~%&¬/()='?¿¡`^+*´¨çÇñÑ,;:<>{}]"
#:local invalidChars "[\5B\20\C2\BA\C2\AA\5C\21\7C\22\C2\B7\23\24\7E\25\26\C2\AC\2F\28\29\3D\27\3F\C2\BF\C2\A1\60\5E\2B\2A\C2\B4\C2\A8\C3\A7\C3\87\C3\B1\C3\91\2C\3B\3A\3C\3E\7B\7D\5D]"
:if ([:len $stringValue] = 0) do={
:put ($stringName . " value can't be empty")
:set isValid false
} else={
:if ([:tostr $stringValue] ~ [:tostr $invalidChars]) do={
:put ($stringName . " value can't contain invalid chars")
:set isValid false
}
}
:put ($stringName . " " . $stringValue)
:return $isValid
}
:put "Value - User for /system user"
:local userName1Valid [$checkString $userName1 "User name 1 ->"]
:local userName2Valid [$checkString $userName2 "User name 2 ->"]
:local userName3Valid [$checkString $userName3 "User name 3 ->"]
:local userName4Valid [$checkString $userName4 "User name 4 ->"]
:local userName5Valid [$checkString $userName5 "User name 5 ->"]
Results:
#--------------------------------------------------------------------------------------------------#
Test 1
:local invalidChars "[ ºª\!|"·#$~%&¬/()='?¿¡^+*´¨çÇñÑ,;:<>{}\\[\\]]" #:local invalidChars "[ ºª\\!|\"·#\$~%&¬/()='?¿¡^+*´¨çÇñÑ,;:<>{}]"
#--------------------------------------------------------------------------------------------------#
Test 1-1
:local userName1 "@.-_012abcABC"
:local userName2 " !|#~%&/()=?'`[1]+*{},;:<>"
#:local userName3 "ºª¡·¬¿´¨ñÑçÇ€"
#:local userName4 "]["
#:local userName5 ""
Result on Terminal
User name 1 -> @.-_012abcABC
User name 2 -> value can't contain invalid chars
User name 2 -> !|#~%&/()=?'`[2]+*{},;:<>
User name 3 -> value can't be empty
User name 3 ->
User name 4 -> value can't be empty
User name 4 ->
User name 5 -> value can't be empty
User name 5 ->
#--------------------------------------------------------------------------------------------------#
Test 2-1
:local userName1 "@.-_012abcABC"
:local userName2 " !|#~%&/()=?'`[3]+*{},;:<>"
:local userName3 "ºª¡·¬¿´¨ñÑçÇ€"
#:local userName4 "]["
#:local userName5 ""
Result on Terminal
User name 1 -> @.-_012abcABC
User name 2 -> value can't contain invalid chars
User name 2 -> !|#~%&/()=?'`[4]+*{},;:<>
User name 3 ->
User name 4 -> value can't be empty
User name 4 ->
User name 5 -> value can't be empty
User name 5 ->
#--------------------------------------------------------------------------------------------------#
Test 3-1
:local userName1 "@.-_012abcABC"
:local userName2 " !|#~%&/()=?'`[5]+*{},;:<>"
:local userName3 "ºª¡·¬¿´¨ñÑçÇ€"
:local userName4 "]["
#:local userName5 ""
Result on Terminal
User name 1 -> @.-_012abcABC
User name 2 -> value can't contain invalid chars
User name 2 -> !|#~%&/()=?'`[6]+*{},;:<>
User name 3 ->
User name 4 -> ][
User name 5 -> value can't be empty
User name 5 ->
#--------------------------------------------------------------------------------------------------#
Test 4-1
:local userName1 "@.-_012abcABC"
:local userName2 " !|#~%&/()=?'`[7]+*{},;:<>"
:local userName3 "ºª¡·¬¿´¨ñÑçÇ€"
:local userName4 "]["
:local userName5 ""
Result on Terminal
User name 1 -> @.-_012abcABC
User name 2 -> value can't contain invalid chars
User name 2 -> !|#~%&/()=?'`[8]+*{},;:<>
User name 3 ->
User name 4 -> ][
User name 5 -> value can't contain invalid chars
User name 5 ->
#--------------------------------------------------------------------------------------------------#
Test 2
#:local invalidChars "[ ºª\!|"·#$~%&¬/()='?¿¡^+*´¨çÇñÑ,;:<>{}\\[\\]]" :local invalidChars "[ ºª\\!|\"·#\$~%&¬/()='?¿¡^+*´¨çÇñÑ,;:<>{}]"
#--------------------------------------------------------------------------------------------------#
Test 1-2
:local userName1 "@.-_012abcABC"
:local userName2 " !|#~%&/()=?'`[9]+*{},;:<>"
#:local userName3 "ºª¡·¬¿´¨ñÑçÇ€"
#:local userName4 "]["
#:local userName5 ""
Result on Terminal
User name 1 -> @.-_012abcABC
User name 2 -> value can't contain invalid chars
User name 2 -> !|#~%&/()=?'`[10]+*{},;:<>
User name 3 -> value can't be empty
User name 3 ->
User name 4 -> value can't be empty
User name 4 ->
User name 5 -> value can't be empty
User name 5 ->
#--------------------------------------------------------------------------------------------------#
Test 2-2
:local userName1 "@.-_012abcABC"
:local userName2 " !|#~%&/()=?'`[11]+*{},;:<>"
:local userName3 "ºª¡·¬¿´¨ñÑçÇ€"
#:local userName4 "]["
#:local userName5 ""
Result on Terminal
User name 1 -> @.-_012abcABC
User name 2 -> value can't contain invalid chars
User name 2 -> !|#~%&/()=?'`[12]+*{},;:<>
User name 3 -> value can't contain invalid chars
User name 3 ->
User name 4 -> value can't be empty
User name 4 ->
User name 5 -> value can't be empty
User name 5 ->
#--------------------------------------------------------------------------------------------------#
Test 3-2
:local userName1 "@.-_012abcABC"
:local userName2 " !|#~%&/()=?'`[13]+*{},;:<>"
:local userName3 "ºª¡·¬¿´¨ñÑçÇ€"
:local userName4 "]["
#:local userName5 ""
Result on Terminal
User name 1 -> @.-_012abcABC
User name 2 -> value can't contain invalid chars
User name 2 -> !|#~%&/()=?'`[14]+*{},;:<>
User name 3 -> value can't contain invalid chars
User name 3 ->
User name 4 -> ][
User name 5 -> value can't be empty
User name 5 ->
#--------------------------------------------------------------------------------------------------#
Test 4-2
:local userName1 "@.-_012abcABC"
:local userName2 " !|#~%&/()=?'`[15]+*{},;:<>"
:local userName3 "ºª¡·¬¿´¨ñÑçÇ€"
:local userName4 "]["
:local userName5 ""
Result on Terminal
User name 1 -> @.-_012abcABC
User name 2 -> value can't contain invalid chars
User name 2 -> !|#~%&/()=?'`[16]+*{},;:<>
User name 3 -> value can't contain invalid chars
User name 3 ->
User name 4 -> ][
User name 5 ->
#--------------------------------------------------------------------------------------------------#