Ruby字母数字检查

Mik*_* H. 6 ruby regex

我想检查fooRuby 中的变量是非空的和字母数字的.我知道我可以遍历每个角色并检查,但这是一个更好的方法吗?

Tod*_*obs 15

使用Unicode或POSIX字符类

要验证字符串是否仅匹配字母数字文本,您可以使用锚定字符类.例如:

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

# Use the POSIX class.
'foo' =~ /\A[[:alnum:]]+\z/
Run Code Online (Sandbox Code Playgroud)

锚定是必不可少的

锚定表达式的重要性不容小觑.如果没有锚定,以下情况也是如此:

"\nfoo" =~ /\p{Alnum}+/
"!foo!" =~ /\p{Alnum}+/
Run Code Online (Sandbox Code Playgroud)

这不太可能是你所期望的.