Preg_match разрешить все домены - PullRequest
0 голосов
/ 30 мая 2018

Я использую функцию php check_email с preg_match, чтобы позволить людям создать аккаунт в интернет-магазине.Все в порядке, но он не принимает домены, такие как @ myname.bike из @ myname.gent.Что мне нужно изменить, чтобы принимать все домены?

Это функция, которая у меня есть сейчас:

!preg_match("/^(?:[\w\d-]+\.?)+@(?:(?:[\w\d]\-?)+\.)+\w{2,4}$/", $email)

Я уже пытался изменить несколько вещей за @, но она не работает,Что не так?

1 Ответ

0 голосов
/ 30 мая 2018

Если я правильно вас понимаю, вы хотите, чтобы ваше регулярное выражение совпадало с электронными письмами без имени и только домена?Нравится @example.com?Если это так, вам просто нужно заменить самый первый + (один или несколько символов) на ? (ноль или более символов)

До

!preg_match("/^(?:[\w\d-]+\.?)+@(?:(?:[\w\d]\-?)+\.)+\w{2,4}$/", $email)

После

!preg_match("/^(?:[\w\d-]?\.?)+@(?:(?:[\w\d]\-?)+\.)+\w{2,4}$/", $email)

...