我想检查一个字符串是否只由数字和字母组成。
def valid?
"abc#d" =~ /\p{Alnum}/
end
但这会返回 0。我希望它返回 nil
,因为它包含既不是字母也不是数字的 #
。
我做错了什么?
最佳答案
错误的是你实际上在检查:
- 字符串是否包含任何数字或字母,
但你想检查:
- 字符串是否只包含数字或字母。
你可以这样检查:
def valid?
"abc#d" !~ /\P{Alnum}/
end
关于Ruby =~ 检查字符串是否匹配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22366326/