Регулярное выражение JavaScript проверка электронной почты [дубликат]



этот вопрос уже есть ответ здесь:



этот код всегда предупреждает "null", что означает, что строка не соответствует выражение.



var pattern = "^w+@[a-zA-Z_]+?.[a-zA-Z]{2,3}$"; 

function isEmailAddress(str) {

str = "[email protected]";

alert(str.match(pattern));
return str.match(pattern);

}
801   17  

17 ответов:

Если вы определяете регулярное выражение как строку, то все обратные косые черты должны быть экранированы, поэтому вместо '\w' вы должны иметь '\\w'.

в качестве альтернативы, определите его как регулярное выражение:

var pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/; 

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

смотрите настоящую вещь здесь: http://www.ex-parrot.com / ~pdw/Mail-RFC822-Address.html

это тот, который я использую на моей странице.

http://www.zparacha.com/validate-email-address-using-javascript-regular-expression/

/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/

Я использую эту функцию в течение некоторого времени. он возвращает логическое значение.

// Validates email address of course.
function validEmail(e) {
    var filter = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
    return String(e).search (filter) != -1;
}

вы можете быть заинтересованы в этот вопрос (или этот), что подчеркивает тот факт, что идентификация действительных адресов электронной почты с помощью регулярных выражений является очень трудной проблемой для решения (если вообще разрешима)

function isEmailAddress(str) {
   var pattern =/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
   return pattern.test(str);  // returns a boolean 
}

С более простой выражение

вот это :

var regexEmail = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
var email = document.getElementById("txtEmail");

if (regexEmail.test(email.value)) {
    alert("It's Okay")
} else {
    alert("Not Okay")

}

удачи.

иногда большая часть страницы регистрации и входа в систему должна проверять электронную почту. В этом примере вы узнаете простую проверку электронной почты. Сначала возьмите ввод текста в html и ввод кнопки, как это

<input type='text' id='txtEmail'/>
<input type='submit' name='submit' onclick='checkEmail();'/>

<script>
    function checkEmail() {
        var email = document.getElementById('txtEmail');
        var filter = /^(([^<>()\[\]\.,;:\s@"]+(\.[^<>()\[\]\.,;:\s@"]+)*)|(".+"))@((\[[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,}))$/;
        if (!filter.test(email.value)) {
            alert('Please provide a valid email address');
            email.focus;
            return false;
        }
    }
</script>

вы также можете проверить, используя это регулярное выражение

<input type='text' id='txtEmail'/>
<input type='submit' name='submit' onclick='checkEmail();'/>

<script>
    function checkEmail() {

        var email = document.getElementById('txtEmail');
        var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

        if (!filter.test(email.value)) {
            alert('Please provide a valid email address');
            email.focus;
            return false;
        }
    }
</script>

проверьте этот демо-выход, который вы можете проверить здесь

function checkEmail() {
        var email = document.getElementById('txtEmail');
        var filter = /^(([^<>()\[\]\.,;:\s@"]+(\.[^<>()\[\]\.,;:\s@"]+)*)|(".+"))@((\[[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,}))$/;
        if (!filter.test(email.value)) {
            alert('Please provide a valid email address');
            email.focus;
            return false;
        }
    }
<input type='text' id='txtEmail'/>
<input type='submit' name='submit' onclick='checkEmail();'/>

если написать корректно, то дают предупреждение , если действительный адрес электронной почты предупреждение Сообщение . для получения дополнительной информации о регулярных выражениях

https://www.w3schools.com/jsref/jsref_obj_regexp.asp

надеюсь, что это поможет вам

вы можете быть заинтересованы в том, чтобы посмотреть на это страница это список регулярных выражений для проверки адреса электронной почты, которые охватывают более общие случаи.

проверка электронной почты легко ошибиться. Поэтому я бы рекомендовал вам использовать Verimail.js.

почему?

  • проверка синтаксиса (согласно RFC 822).
  • IANA TLD validation
  • предложение по написанию для наиболее распространенных дву и доменов электронной почты
  • запретить временные Домены учетных записей электронной почты, такие как mailinator.com
  • jQuery плагин поддержка

еще одна замечательная вещь, с Verimail.js заключается в том, что он имеет предложение по написанию для наиболее распространенных доменов электронной почты и зарегистрированных дву. Это может значительно снизить коэффициент отказов для пользователей, которые неправильно пишут общие доменные имена, такие как gmail.com, hotmail.com, aol.com-Асо..

пример:

как его использовать?

самый простой способ-загрузить и включить verimail.jquery.js на вашу страницу. После этого подключите Verimail, запустив следующую функцию в поле ввода, которая нуждается в проверке:

$("input#email-address").verimail({
    messageElement: "p#status-message"
});

элемент сообщения является необязательным элементом, который отображает сообщение, например " недопустимое сообщение электронной почты.."или" вы имели в виду [email protected] если у вас есть форма и вы хотите только продолжить, если электронная почта проверяется, вы можете использовать функцию getVerimailStatus, как показано ниже:

if($("input#email-address").getVerimailStatus() < 0){
    // Invalid email
}else{
    // Valid email
}

функция getVerimailStatus - возвращает целочисленный код в соответствии с объектом Comfirm.AlphaMail.Verimail.Статус. Как показано выше, если состояние является отрицательным целым значением, то проверка должна рассматриваться как сбой. Но если значение больше или равно 0, то проверка должна рассматриваться как успешная.

Я использую этот....

/^[\w._-]+[+]?[\w._-]+@[\w.-]+\.[a-zA-Z]{2,6}$/

это позволяет + до @([email protected])

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

var pattern = /^[A-Za-z0-9._%+-]+@([A-Za-z0-9-]+\.)+([A-Za-z0-9]{2,4}|museum)$/;

немного опоздал на вечеринку, но здесь ничего не выходит...

function isEmailValid(emailAdress) {
    var EMAIL_REGEXP = new RegExp('^[a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,15})$', 'i');
    return EMAIL_REGEXP.test(emailAdress)
}

http://jsfiddle.net/yrshaikh/xvd6H/

var emailRegex = /^[A-Z0-9_'%=+!`#~$*?^{}&|-]+([\.][A-Z0-9_'%=+!`#~$*?^{}&|-]+)*@[A-Z0-9-]+(\.[A-Z0-9-]+)+$/i;
if(emailRegex.test('yoursamplemail'))
alert('valid');
else
alert('invalid');

простая, но мощная проверка электронной почты для проверки синтаксиса электронной почты:

var EmailId = document.getElementById('Email').value;
var emailfilter = /^[\w._-]+[+]?[\w._-]+@[\w.-]+\.[a-zA-Z]{2,6}$/;
if((EmailId != "") && (!(emailfilter.test(EmailId ) ) )) {
    msg+= "Enter the valid email address!<br />";
}

вы должны иметь в виду, что a-z, A-Z, 0-9,., _ и - не единственные допустимые символы в начале адреса электронной почты.

Gmail, например, позволяет поставить знак "+" в адрес "поддельные" другой электронной почты (например [email protected] также будет отправлено письмо кому-то[email protected]).

micky. o'[email protected] не хотелось бы, чтобы ваш код останавливал их ввод адреса ... апострофы совершенно действительны в электронной почте адреса.

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

http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/format/emailaddress.js#198

Я рекомендую быть очень открытым в вашем клиентском коде, а затем гораздо более тяжелым, например, отправить электронное письмо со ссылкой, чтобы действительно проверить, что оно "допустимо" (как синтаксически допустимо для их поставщика, а также нет с орфографической ошибкой.)

что-то вроде этого:

var pattern = /[^@]+@[-a-z\.]\.[a-z\.]{2,6}/

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

http://www.eurid.eu/en/eu-domain-names/idns-eu

http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx

было бы лучше использовать:

var pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,20}$/;

Это позволяет Домены, такие как: whatever.info (4 буквы в конце)

также проверить, используя

pattern.test("[email protected]")

возвращает true, если он работает

http://www.w3schools.com/js/js_obj_regexp.asp

вы можете добавить функцию в строковый объект

//Add this wherever you like in your javascript code
String.prototype.isEmail = function() {
    return !!this.match(/^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/);
}

var user_email = "[email protected]";

if(user_email.isEmail()) {
    //Email is valid !
} else {
    //Email is invalid !
}

Comments

    Ничего не найдено.