文字列に小文字、大文字、または数字のみが含まれていることを確認しようとしています。
if ! [[ "$TITLE" =~ ^[a-zA-Z0-9]+$ ]]; then echo "INVALID"; fi
考え?
* アップデート *
変数 TITLE は現在、大文字のテキストしか持たないため、通過し、何も出力されません。ただし、特殊文字を TITLE に追加すると、IF ステートメントはそれをキャッチし、INVALID をエコーする必要があります。現在、動作しません。常に無効をエコーします。これは、正規表現ステートメントが間違っているためだと思います。私が書いたように、3つすべてが含まれているタイトルを探していると思います.
バッシュ 4.2.25
アイデアは、大文字、小文字、または数字のみが含まれている限り、ユーザーは任意のタイトルを追加できる必要があるということです。他のすべての文字は失敗するはずです。
* アップデート *
TITLE = ThisIsAValidTitle の場合、無効としてエコーされます。
TITLE = ThisIs@@@@@@@InvalidTitle の場合、無効もエコーされます。
* 解決 *
奇妙なことに、これを単純化するとうまくいきました:
TEST="Valid0"
if ! [[ "$TEST" =~ [^a-zA-Z0-9] ]]; then
echo "VALID"
else
echo "INVALID"
fi
*本当の解決策*
私の変数にはスペースが含まれていました...DUH
ご迷惑をおかけして申し訳ありません...
* 最終的解決 *
これにより、タイトルのスペースが考慮されます
if ! [[ "$TITLE" =~ [^a-zA-Z0-9\ ] ]]; then
echo "VALID"
else
echo "INVALID"
fi