2013-05-07 3 views
5

Как проверить, чтобы указанная строка содержала адрес электронной почты.Проверьте, содержит ли строка адрес электронной почты?

Адрес электронной почты будет также содержать много другого текста.

Кроме того, не требуется строго строго проверить адрес электронной почты. Более того, просто хочу убедиться, что есть [email protected].

Пример строки:

Overall I liked the service, but had trouble using the widget generator. 

Want more info? You can contact me at [email protected] 

Plain Javascript прекрасно, но я, случается, используя JQuery, так что если есть какая-то вспомогательная функция, которая делает это проще ... пойти на это.

+2

Что сказал @WesleyMurch. Я ищу javascript здесь. Не PHP. – Shpigford

+0

@ WesleyMurch Ah bullocks, мои плохие :(но регулярные выражения тоже работают в JavaScript. –

+1

FWIW, это сообщение уже №1 в Google для «[проверка javascript, если строка содержит адрес электронной почты] (https://www.google .com/search? q = javascript + check + if + a + string + содержит + адрес + адрес электронной почты +). Хороший ответ был бы полезен, вместо того, чтобы отклонять этот вопрос, потому что он относится к другому. –

ответ

10

Debuggex Example

JsFiddle Example

function checkIfEmailInString(text) { 
    var re = /(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))/; 
    return re.test(text); 
} 
+0

Отрицательно это не соответствует новым строкам, любые идеи по изменению этого? https://regex101.com/r/rN6eD6/1 – Jimmyt1988

5

Вы можете использовать это:

var StrObj = "whatever, this is my email [email protected] other text"; 
var emailsArray = StrObj.match(/([a-zA-Z0-9._-][email protected][a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi); 
if (emailsArray != null && emailsArray.length) { 
    //has email 
} 

Это также позволяет получить адрес электронной почты из массива, если вам это нужно.

Смежные вопросы