Итак, у меня есть эта функция JavaScript:
ME.Utils = {
RxEmail: new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i),
ValidateEmail: function(email) {
return ME.Utils.RxEmail.test(email);
},
GetEmailAddresses: function(text) {
return text.match(ME.Utils.RxEmail);
},
HasEmail: function(text) {
return ME.Utils.GetEmailAddresses != null;
}
};
ValidateEmail
работает очень хорошо.Однако HasEmail
и GetEmailAddresses
не работают должным образом.
GetEmailAdresses
всегда возвращает null
, за исключением случаев, когда строка содержит только адрес электронной почты.В этом случае GetEmailAdresses
возвращает массив, содержащий не только адрес электронной почты, но и адрес электронной почты (test@test.com), только идентификатор (test), а также некоторые неопознанные и т. Д. И т. Д. *
Можете ли вы помочь мне понять, что не так в моем выражении?