这是代码-
def username_chk(str)
if str.length <=20
if str=~/^[a-zA-Z\\s]+$/
puts "Invalid User name"
else
puts str
end
else puts"User name can contain Max 20 character"
end
end
username_chk("Mark ju09")
没有用我也试过:
str=~/[a-zA-Z]+\\.?/
str=~/^[a-zA-Z\s]+$/这个表达式在java中使用Pattern工作正常
3条答案
按热度按时间ppcbkaq51#
1.你不需要在ruby正则表达式中使用双转义符。
\s
表示“空白字符”;\\s
表示“一个反斜杠,然后是s
“([\\s]
表示反斜杠 * 或 * 一个s
)。=~
是一个“匹配”运算符。str=~/^[a-zA-Z\\s]+$/
检查字符串 does 匹配的内容,而不是它 * doesn 't * 匹配的内容。总之,有几种方法可以写这个,但这里有几个:
参见文档:这里和这里
hiz5n14c2#
您可以使用下面的正则表达式来验证字符串是否至少有一个特殊字符或至少有一个数字。
str.match?(/[^a-zA-Z0-9]|\d/)
h5qlskok3#
在正则表达式中,不需要转义反斜杠()。因此,/^[a-zA-Z\s]+$/变为/^[a-zA-Z\s]+$/。也是“无效用户名”的顺序,并在有效时放置str行以显示用户名。