Как проверить адрес электронной почты и сайт в комнете - PullRequest
0 голосов
/ 30 апреля 2019

Я хочу подтвердить адрес электронной почты и веб-сайт в поле для комментариев.Когда кто-то пишет комментарий в поле для комментариев и после отправки проверяет, найдены ли в нем адрес электронной почты или веб-сайт, удалите это электронное письмо и адрес.

Я поместил ниже регулярное выражение для электронной почты.

"/(?:[a-z0-9!#$%&'*+=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/"

Выражение выше проверяет адрес электронной почты, но я хочу проверить, как email [at] email [dot] com, email {at} email {dot} com, email (at) email (точка)com

То же самое для проверки веб-сайта Я использовал ниже выражение

"/((((http|https|ftp|ftps)\:\/\/)|www\.)[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4}(\/\S*)?)/"

Но я хочу проверить веб-сайт как веб-сайт[точка] ком, www [точка] сайт [точка] ком

1 Ответ

1 голос
/ 30 апреля 2019

В основном вам нужно сделать, чтобы у вас была проверка @ и . символа в электронной почте или . в weburl, вам нужно улучшить регулярное выражение и поставить альтернативы @ символа каквы ожидаете.Итак,

@ should be written as (?:@|[[({]at[\]})])

И,

\. should be written as (?:\.|[[{(]dot[\]})])

, где бы вы ни находились в вашем регулярном выражении, а затем он также будет фильтровать эти строки.

Вот модифицированныйregex для электронной почты.

(?:[a-z0-9!#$%&'*+=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")(?:@|[[({]at[\]})])(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\.|[[{(]dot[\]})]))+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

Regex Demo для электронной почты

Таким же образом вы можете заменить . на своем веб-сайте regex и на вашем измененномregex становится этим,

(?:(?:(?:http|https|ftp|ftps)\:\/\/)|www(?:\.|[[{(]dot[\]})]))(?:[a-zA-Z0-9.-]|[[{(]dot[\]})])+(?:\.|[[{(]dot[\]})])[a-zA-Z]{2,4}(\/\S*)?

Regex Demo для веб-адреса

Теперь помимо сопоставления [dot], {dot} и (dot), регулярное выражение также будет соответствовать [dot} и аналогичным, и, поскольку вы пытаетесь обнаружить такие строки дальше, следовательно, сопоставление этих строк будет дополнительным преимуществом, а не проблемой, если контекст не был иным.

...