我想验证登录名和特殊字符[email protected]#S%^*()+_-?/<>:"';
。在轨道上使用红宝石中的正则表达式的空间。这些特殊字符不应该被接受。这是什么代码?验证特殊字符
Q
验证特殊字符
3
A
回答
0
1
好吧,我不知道轨但这是正则表达式是什么样子的,我知道每一个其他语言:
^[^[email protected]#\$%\^\*\(\)\+_\-\?/\<\>:"';\. ]$
1
正则表达式/^\w*$/
允许使用字母,数字和下划线一个。
而且,你有一个cheatsheet文件,并在此线程回答您的具体问题上http://rubular.com
3
你已经收到正则表达式的现场红宝石正则表达式编辑器。你正在做一个黑名单的方法(阻止你不想要的角色),但这真的是最好的吗?我看你没有覆盖&或〜,还有很多其他的特殊字符可能仍然丢失。
如果你想阻止特殊字符,我建议按照pablorc的regexp建议采用白名单方法。它更广泛,只列出你想要允许的内容....非特殊字符:只有单词,下划线和数字。
我已经走了,为您创建了一个使用此正则表达式的白名单方法。
def valid_login?(str)
return true if (/^\w*$/.match(str))
return false
end
这种方法,valid_login?只如果字符串包含字母,数字或下划线,那么您所有的特殊字符返回true(加上你忽略了那些不符合这些要求的任何其他)被安全地检测到。
用法:
> valid_login?("testy")
true
> valid_login?("a b")
false
> valid_login?("a'")
false
7
validates_format_of :username, :with => /^[A-Za-z0-9.&]*\z/
将工作
0
validates_format_of :username, :with => /^[^[email protected]#S%\^\*()\+_-\?\/<>:\"';]+$/
相关问题
- 1. 验证特殊字符
- 2. Javascript特殊字符验证
- 3. 验证数字和特殊字符'_'
- 4. 有特殊字符Angular2密码验证
- 5. 特殊字符的必需验证
- 6. jQuery的验证特殊字符的
- 7. Onkeypress,javascript未验证特殊字符
- 8. JSF:对特殊字符的验证
- 9. Javascript验证:阻止特殊字符
- 10. Jquery使用特殊字符验证插件号码验证
- 11. Preg_match验证字符串中的特殊字符
- 12. Selenium IDE - 如何验证名字字段中的特殊字符
- 13. 某些特定特殊字符的数据验证
- 14. 验证密码字段是否包含特殊字符
- 15. 使用特殊字符验证文本字段
- 16. 验证特殊代码
- 17. jQuery验证()特殊功能
- 18. 正则表达式来验证字母数字和特定的特殊字符
- 19. 特殊字符
- 20. 特殊字符
- 21. 特殊字符
- 22. 特殊字符
- 23. 特殊字符
- 24. 特殊字符“#”在Struts校验
- 25. 如何在PHP中进行特殊字符验证
- 26. JQuery自动完成Ajax验证特殊字符
- 27. powershell特殊字符用户输入验证
- 28. 只有jquery很少有特殊字符验证
- 29. 特殊形式的字符串输入验证
- 30. 检查特殊字符(;)在验证一个表单的JavaScript
* “是什么的代码?” *为什么不能在这里发表您的努力,使其他可以点出错误:更好的学习方式,IMO。 – 2010-05-28 14:22:35
我是Nuby,但您应该将白名单合法字符而不是阻止特殊字符。如果有人使用¨或§或½,该怎么办? – 2010-05-28 14:23:40