我有一个表单,其中的输入字段正在接收电子邮件。我想将用户输入的电子邮件限制为 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 封电子邮件吗?
最佳答案
在您编写域 TLD 的第一个字符后,它会限定正则表达式,并且不允许您再输入。
我解决这个问题的方法是在第二个末尾需要一个空格,然后不再让任何空格通过。
return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)\s/gi);
// ^^ there
关于javascript - Jquery限制输入长度为n封电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26575487/