Man*_*lvi 9 ruby regex ruby-on-rails-3
我试图在ruby中验证字符串.任何包含空格,分数或任何特殊字符的字符串都应该无法通过验证.有效字符串应该只包含字符a-zA-Z0-9我的代码看起来像.
def validate(string)
regex ="/[^a-zA-Z0-9]$/
if(string =~ regex)
return "true"
else
return "false"
end
Run Code Online (Sandbox Code Playgroud)
我收到错误:TypeError:type mismatch:给定字符串.
任何人都可以让我知道这样做的正确方法是什么?
如果您要验证一行:
def validate(string)
!string.match(/\A[a-zA-Z0-9]*\z/).nil?
end
Run Code Online (Sandbox Code Playgroud)
不需要每个人都有回报.
您只需检查字符串中是否存在特殊字符即可。
def validate str
chars = ('a'..'z').to_a + ('A'..'Z').to_a + (0..9).to_a
str.chars.detect {|ch| !chars.include?(ch)}.nil?
end
Run Code Online (Sandbox Code Playgroud)
结果:
irb(main):005:0> validate "hello"
=> true
irb(main):006:0> validate "_90 "
=> false
Run Code Online (Sandbox Code Playgroud)
def alpha_numeric?(char)
if (char =~ /[[:alpha:]]/ || char =~ /[[:digit:]]/)
true
else
false
end
end
Run Code Online (Sandbox Code Playgroud)
或者
def alpha_numeric?(char)
if (char =~ /[[:alnum:]]/)
true
else
false
end
end
Run Code Online (Sandbox Code Playgroud)
我们使用匹配字母和数字的正则表达式:
上面的 [[:alpha:]] 、[[:digit:]] 和 [[:alnum:]] 是 POSIX 括号表达式,它们的优点是匹配其类别中的 Unicode 字符。希望这可以帮助。
查看下面的链接以获取更多选项: Ruby:如何确定字符是字母还是数字?
| 归档时间: |
|
| 查看次数: |
8026 次 |
| 最近记录: |