gpt4 book ai didi

javascript - 检测何时将文本输入到文本区域并相应地更改它

转载 作者:搜寻专家 更新时间:2023-11-01 05:23:42 28 4
gpt4 key购买 nike

我有一个 textarea用户可以在其中输入或粘贴其他人的电子邮件地址,并在按下“提交”按钮后向他们发送邀请。每封电子邮件必须用逗号分隔并且在提交表单之前有效 - 验证由 jQuery Validate plugin 负责& multiemail method .

问题

有些人直接从他们的电子邮件客户端粘贴电子邮件地址,这些电子邮件通常采用奇怪的格式 - 在实际电子邮件之前包含姓名和姓氏,或者电子邮件包含在 < > 中。例如: "The Dude" <the.dude@gmail.com>, "The Dudette" <thedudette193@gmail.com>

问题

我想做的是Extract all email addresses from bulk text using jquery ,但我在将这段代码与我的 textarea 结合使用时遇到了问题- 我不知道从哪里开始。

我如何使用上述答案中的代码提取输入到 textarea 中的每封电子邮件在输入逗号后或焦点从 textarea 移开时?所以如果我粘贴 "The Dude" <the.dude@gmail.com>然后输入 ,之后或将焦点移开,输入的值将更改为 the.dude@gmail.com .

最佳答案

我猜是这样的:

var textarea = $('#emails');

textarea.on({
keyup: function(e) {
if (e.which === 188) check();
},
blur: check
});

function check() {
var val = $.trim(textarea.val()),
err = '';

if (!val.length) {
err = 'No input ?';
return;
}

var emails = val.split(','),
notvalid = [],
temp = [];

$.each(emails, function(_,mail) {
mail = $.trim(mail);
if ( mail.length ) {
var m = mail.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
if (m) {
temp.push(m);
}else{
temp.push(mail);
notvalid.push(mail)
}
}else{
temp.push(mail);
}
if (notvalid.length) err = 'Not valid emails : ' + notvalid.join(', ');
});

$('#error').html(err);
textarea.val((temp.length ? temp : emails).join(', '));
}

FIDDLE

关于javascript - 检测何时将文本输入到文本区域并相应地更改它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19179585/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com