如何在Ruby正则表达式中匹配韩语字符?

Jak*_*old 5 ruby regex unicode cjk ruby-1.9

我对使用正则表达式的用户名进行了一些基本验证,比如[\w-_]+,我希望添加对韩语字母的支持,同时仍然保持验证相同.

我不想允许特殊字符,例如{}[]!@#$%^&*()等等.我只想替换\w除了匹配给定字母的东西[a-zA-Z0-9].

这意味着用户名??应该有效,但不是??[].

我需要在Ruby 1.9中这样做.

ste*_*lag 10

你可以测试这样的无效字符:

#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.
Run Code Online (Sandbox Code Playgroud)


김민준*_*김민준 10

试试这个:

[가 - 힣] +

这匹配从U + AC00到U + D7A3的每个角色,这可能足以引起您的兴趣.(我认为你不需要旧的韩文字符和东西)