7

fooRubyの変数が空ではなく英数字であることを確認したいと思います。各キャラクターを繰り返して確認できることはわかっていますが、それがより良い方法ですか?

4

1 に答える 1

17

UnicodeまたはPOSIX文字クラスを使用する

文字列が英数字テキストのみに一致することを検証するには、アンカー文字クラスを使用できます。例えば:

# Use the Unicode class.
'foo' =~ /\A\p{Alnum}+\z/

# Use the POSIX class.
'foo' =~ /\A[[:alnum:]]+\z/

固定は不可欠です

あなたの表現を固定することの重要性は誇張することはできません。固定しないと、次のこと当てはまります。

"\nfoo" =~ /\p{Alnum}+/
"!foo!" =~ /\p{Alnum}+/

これはあなたが期待するものではないでしょう。

于 2012-11-12T01:48:49.247 に答える