Ruby 使用regex验证用户名
正在尝试解决regex登录问题。规则如下:Ruby 使用regex验证用户名,ruby,regex,Ruby,Regex,正在尝试解决regex登录问题。规则如下: 允许的字符有:小写字母、数字、下划线 长度应介于4到16个字符之间 以下是它必须通过的测试用例: Test.describe("Basic tests") do Test.assert_equals(validate_usr('asddsa'), true) Test.assert_equals(validate_usr('a'), false) Test.assert_equals(validate_usr('Hass'), fals
- 允许的字符有:小写字母、数字、下划线
- 长度应介于4到16个字符之间
Test.describe("Basic tests") do
Test.assert_equals(validate_usr('asddsa'), true)
Test.assert_equals(validate_usr('a'), false)
Test.assert_equals(validate_usr('Hass'), false)
Test.assert_equals(validate_usr('Hasd_12assssssasasasasasaasasasasas'), false)
Test.assert_equals(validate_usr(''), false)
Test.assert_equals(validate_usr('____'), true)
Test.assert_equals(validate_usr('012'), false)
Test.assert_equals(validate_usr('p1pp1'), true)
Test.assert_equals(validate_usr('asd43 34'), false)
Test.assert_equals(validate_usr('asd43_34'), true)
end
这是我的代码:
def validate_usr(username)
if (username.length > 3 && username == username.downcase)
return true
elsif
username.include?(" ") == true
return false
else
return false
end
end
遇到了测试用例9的问题,其中涉及到一个空格。它返回
true
测试用例9返回true
,因为它满足username.length>3&&username==username.downcase
。请注意,”。这里的downcase==”
如果username.include?(“”)向上移动返回false,它应该可以工作。不过,我真诚地建议使用Regex
def validate_usr(username)
/\A[a-z0-9_]{4,16}\z/ === username
end
测试用例9返回true
,因为它满足username.length>3&&username==username.downcase
。请注意,”。这里的downcase==”
如果username.include?(“”)
向上移动返回false,它应该可以工作。不过,我真诚地建议使用Regex
def validate_usr(username)
/\A[a-z0-9_]{4,16}\z/ === username
end
你的问题是什么?在编辑和强制你对问题的解释之前,你应该确定他在问什么。你的问题是什么?在编辑和强制你对问题的解释之前,你应该确定他在问什么。如果答案有帮助,不要忘了接受和/或投赞成票;)帮助这里的人们使用a!~b
,而不是!!(a=~b)
@Jordan你必须写!(a!~b)
在这种情况下。我想!!(a=~b)
看起来更好。但我明白你的意思。如果您将该方法重命名为reject_usr
或其他名称并返回a!~那会很好,很简洁。啊,我错了。阅读理解力差——我没有注意到OP声称与真
/假
相等,而不是真/假。如果答案有帮助,别忘了接受和/或投票赞成;)帮助这里的人们使用a!~b
,而不是!!(a=~b)
@Jordan你必须写!(a!~b)
在这种情况下。我想!!(a=~b)
看起来更好。但我明白你的意思。如果您将该方法重命名为reject_usr
或其他名称并返回a!~那会很好,很简洁。啊,我错了。糟糕的阅读理解力——我没有注意到OP声称与true
/false
相等,而不是真/假。