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