Если вы используете регулярное выражение для проверки, вам всегда нужно использовать \A
и \z
. ^
и $
будут совпадать только до символа новой строки, что означает, что они могут использовать электронную почту, такую как me@example.com\n<script>dangerous_stuff();</script>
, и при этом проверять ее, поскольку регулярное выражение видит все до \n
.
Я бы порекомендовал просто убрать новые строки из имени пользователя или электронной почты заранее, поскольку для этого практически нет законной причины. Тогда вы можете безопасно использовать EITHER \A
\z
или ^
$
.