のような正規表現を使用したユーザー名の基本的な検証がいくつかあり[\w-_]+
ます。検証を同じに保ちながら、韓国語のアルファベットのサポートを追加したいと考えています。
などの特殊文字を許可したくありません。に加えて、 を特定のアルファベットに一致するもの{}[]!@#$%^&*()
に置き換えたいだけです。\w
[a-zA-Z0-9]
つまり、ようなユーザー名안녕
は有効である必要がありますが、안녕[]
.
Ruby 1.9でこれを行う必要があります。
次のような無効な文字をテストできます。
#encoding: utf-8
def valid_name?(name)
!name.match(/[^a-zA-Z0-9\p{Hangul}]/)
end
ar = %w(안녕 name 안녕[].)
ar.each{|name| puts "#{name} is #{valid_name?(name) ? "valid" : "invalid"}."}
# 안녕 is valid.
# name is valid.
# 안녕[]. is invalid.
私はあなたが置き換えることができると思い\w
ます[:word:]
/^[[:word:]\-_]+$/
動作するはずです
有効な韓国語の文字が多すぎるため、無効な文字の照合が最適なオプションです。技術的にはアルファベットですが、音節ごとに 1 文字としてコンピューター化されています。有効。