ruby - Ruby正则表达式中\A\z和^$的区别

标签 ruby regex

在我阅读的文档中:

Use \A and \z to match the start and end of the string, ^ and $ match the start/end of a line.

我将应用正则表达式来检查用户提交的用户名(或电子邮件是否相同)。我应该在模型中将哪个表达式与 validates_format_of 一起使用?我无法理解其中的区别:我一直使用 ^ 和 $ ...

最佳答案

如果您依赖正则表达式进行验证,您总是希望使用 \A\z . ^$只会匹配到换行符,这意味着他们可以使用像 me@example.com\n<script>dangerous_stuff();</script> 这样的电子邮件并仍然对其进行验证,因为正则表达式只能看到 \n 之前的所有内容.

我的建议是事先完全删除用户名或电子邮件中的新行,因为几乎没有合理的理由。然后你可以安全地使用 EITHER \A \z^ $ .

关于ruby - Ruby正则表达式中\A\z和^$的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/577653/

相关文章:

ruby-on-rails - Rubocop Metrics/CyclomaticComplexity 以防万一

ruby - vagrant 管理主机 dhcp

ruby-on-rails - 使用 Ruby 的三元运算符 ? : to shorten this

c# - 匹配文本中重复部分的正则表达式

python - 无法使用正则表达式使用单词或空格边界提取所有单词

php - 正则表达式中字母 "~"的含义

ruby - 在 Ruby On Rails 的类变量中缓存文件

ruby - 挂载多个 Rack 应用程序,无需在 url 中添加前缀

ruby - 如何选择最接近句号的前280个单词?

OSX v10.8 的正则表达式匹配