Jquery ограничить длину ввода до n писем

0

У меня есть форма, в которой поле ввода принимает сообщения электронной почты. Я хочу ограничить электронные письма, введенные пользователем, на 2 или какое-то другое значение.

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

JSFiddle здесь: http://jsfiddle.net/fd1xdohg/

Вот мой код:

HTML:

<input id="emails"></input>
<label id="lbl"></label>

JS:

$("#emails").keypress(function () {
    pEmails_tmp = extractEmails($('#emails').val());
    if (pEmails_tmp.length >= 2) {
        $("#emails").attr('maxlength', $('#emails').val().length);
    }
});

function extractEmails(text) {
    return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
}

Попробуйте дать 2 письма, разделенных пробелом (или тем, что вы хотите), и вы увидите, что он не позволит вам писать расширение домена после ".". точка.

Любые идеи о том, как ограничить поле ввода для n электронных писем?

Теги:

1 ответ

1
Лучший ответ

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

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

return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)\s/gi);
//                                                                   ^^ there
  • 0
    Да, это сработало !!! Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню