Использование регулярного выражения для проверки адреса электронной почты - PullRequest
0 голосов
/ 14 ноября 2011

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

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

Электронная почтаформат должен быть таким, как этот emailaddress@bri.golia.com

адрес электронной почты, который должен быть принят, может иметь только домен @ bri.golia.com, все остальное не должно позволять пользователю отправить форму, как можноЯ об этом?

            <form method="post" action="site.com/mail.php" name="SampleForm" enctype="multipart/form-data">


                        <div class="info">
                            <h2 class="forms_heading" name="Contact">Contact Information</h2>
                                <br />
                                <div class="required">
                                    <label for="name">Name:</label>
                                    <input type="text" for="name" id="name" name="RequesterName" required="required"  />

                                </div>
                                <div class="required">
                                    <label for="email">E-mail:</label>
                                    <input type="text" for="email" id="email" name="RequesterEmail" required="required"   />
                                </div>

                                <div class="required">
                                    <label for="phone">Phone:</label>
                                    <input type="text" for="phone" id="phone" name="RequesterPhone" required="required"   />
                                </div>

                                <br />
                                <br />
                        </div><!-- end info -->





                            <br />
                            <input type="submit" value="Submit" class="submit_button"  />

Ответы [ 4 ]

0 голосов
/ 14 ноября 2011

Не думаю, что для этого нужно использовать регулярное выражение, простая подстрока с indexOf - это anuf для извлечения первой и последней части письма, чтобы затем проверить, является ли его @ bri.golia.com

var str_email = "testblah@bri.golia.com";

var str_at_domain = str_email.substring(str_email.indexOf('@'));

var userEmail = str_email.substring(0, str_email.indexOf('@'));
0 голосов
/ 14 ноября 2011

Строка Regex

^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$

Я бы либо использовал валидатор ASP типа RegEx, либо сравнивал бы Regex по методу нажатия кнопки.

Можно найти несколько других строк RegEx.здесь:

Вот некоторый пример ASP для текстового поля и средства проверки RegEx:

    <asp:TextBox ID="txtEmail" runat="server" />
    <asp:RegularExpressionValidator ID="valEmail" ControlToValidate="txtEmail" 
            runat="server"
            ValidationExpression="^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$"
            ErrorMessage="You need a valid e-mail address" /> 

Кроме того, вотхороший поиск по валидаторам в ASP

  • Google: валидатор asp regex
0 голосов
/ 14 ноября 2011

Добавьте атрибут pattern с регулярным выражением:

<input type="text" for="email" id="email" name="RequesterEmail" required="required" pattern="\b[A-Za-z0-9._%+-]+@bri\.golia\.com\b"  />

Также смотрите мой jsfiddle .

=== ОБНОВЛЕНИЕ ===

Чтобы изменить текст ошибки, перезапишите метод invalid:

document.getElementById('email').oninvalid = function(e) {
    e.target.setCustomValidity('');
    if (!e.target.validity.valid) {
        e.target.setCustomValidity("My custom text.");
    }
};

Также смотрите мой обновленный jsfiddle .

0 голосов
/ 14 ноября 2011

Предполагая, что вы используете плагин проверки jQuery , вы сможете добавить пользовательский regex метод проверки.

Я не проверял это, но оно должно быть близко:

$.validator.addMethod(
        "regex",
        function(value, element, regexp) {
            var check = false;
            var re = new RegExp(regexp);
            return this.optional(element) || re.test(value);
        },
        "Please check your input."
);

С помощью вышеприведенного метода теперь вы можете передать регулярное выражение проверки:

$("#input1").rules("add", { regex: "^[a-zA-Z]+@yourdomain\.com$" });

Очевидно, что вы можете настраивать регулярные выражения по мере необходимости, пока они не удовлетворят вашим требованиям. Например, я включил базовое регулярное выражение для проверки доменного имени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...