Answers:
如果您要使用正则表达式进行验证,则始终需要使用\A和\z。^并且$只会匹配直到换行符为止,这意味着他们可以像这样使用电子邮件me@example.com\n<script>dangerous_stuff();</script>并仍然对其进行验证,因为正则表达式只能看到之前的所有内容\n。
我的建议只是事先从用户名或电子邮件中完全删除新行,因为几乎没有正当理由。然后,您可以安全地使用EITHER \A \z或^ $。
\z代替 \Z!
$检查“字符串结尾”而不是,它也会被绕过\z。