在文档中,我读到:
我将使用正则表达式来检查用户提交的用户名(或电子邮件是否相同)。我应该在模型中的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/