2013-05-07 40 views
5

Tôi làm cách nào để kiểm tra xem chuỗi đã cho có chứa địa chỉ email không.Kiểm tra xem chuỗi có chứa địa chỉ email không?

Địa chỉ email cũng sẽ được bao gồm cùng với nhiều văn bản khác.

Ngoài ra, không cần phải xác thực chính xác địa chỉ email. Nhiều hơn như vậy chỉ muốn đảm bảo rằng [email protected] có mặt.

Ví dụ chuỗi:

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

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

Plain javascript là tốt, nhưng tôi tình cờ được sử dụng jQuery, vì vậy nếu có một số loại hàm mà làm cho điều này dễ dàng hơn ... đi cho nó.

+2

gì @WesleyMurch nói. Tôi đang tìm javascript ở đây. Không phải PHP. – Shpigford

+0

@WesleyMurch Ah bullocks, bad của tôi: (nhưng các cụm từ thông dụng cũng hoạt động trong JavaScript. –

+1

FWIW, bài đăng này đã đượC# 1 trong Google cho "[javascript kiểm tra xem chuỗi có chứa địa chỉ email] không (https://www.google) .com/search? q = javascript + kiểm tra + nếu + a + chuỗi + chứa + một + email + địa chỉ) ". Câu trả lời hay sẽ hữu ích, thay vì loại bỏ câu hỏi vì nó có liên quan đến một câu hỏi khác. –

Trả lời

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

Trên tiêu cực của điều này nó không phù hợp với dòng mới, bất kỳ ý tưởng làm thế nào để sửa đổi này? https://regex101.com/r/rN6eD6/1 – Jimmyt1988

5

Bạn có thể sử dụng này:

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 
} 

này cũng cho phép bạn có được địa chỉ email từ mảng, nếu bạn cần nó.

Các vấn đề liên quan