Javascript jquery电子邮件提取器来自textarea

Javascript jquery电子邮件提取器来自textarea,javascript,jquery,html,email,Javascript,Jquery,Html,Email,好的,我有两个不同id的文本区域。我正在尝试提取粘贴到第一个文本区域,然后显示到第二个文本区域的电子邮件。我知道我的jquery用于从页面中的文本中提取和排序电子邮件,但我似乎无法让它与textarea一起工作 我的textarea的代码如下所示: <textarea id="email-extractor" class="email-extractor-textarea"></textarea> <textarea id="email-extracted" cla

好的,我有两个不同id的文本区域。我正在尝试提取粘贴到第一个文本区域,然后显示到第二个文本区域的电子邮件。我知道我的jquery用于从页面中的文本中提取和排序电子邮件,但我似乎无法让它与textarea一起工作

我的textarea的代码如下所示:

<textarea id="email-extractor" class="email-extractor-textarea"></textarea>
<textarea id="email-extracted" class="email-extractor-textarea"></textarea>
<script>

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

function eliminateDuplicates (arr) {
    var i;
    var len=arr.length;
    var out=[];
    var obj={};

    for (i=0;i<len;i++) {
        obj[arr[i]]=0;
    }
    for (i in obj) {
        out.push(i);
    }
    return out;
}

var emailsFullList = [];

$('#email-extractor').keyup(function( index ) {
    var emails = extractEmails($(this).text());

    if (!emails) {
       $('#email-extracted').text('** No emails in comment');
    } else if (emails.length < 3) {
        emailsFullList = emailsFullList.concat(emails);
    } else {
        $('#email-extracted').text('** Ignoring comment, too many email addresses ('+emails.length+').');
    }
});

emailsFullList = eliminateDuplicates(emailsFullList);

$('#email-extracted').text(emailsFullList.join());

</script>

我的代码如下所示:

<textarea id="email-extractor" class="email-extractor-textarea"></textarea>
<textarea id="email-extracted" class="email-extractor-textarea"></textarea>
<script>

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

function eliminateDuplicates (arr) {
    var i;
    var len=arr.length;
    var out=[];
    var obj={};

    for (i=0;i<len;i++) {
        obj[arr[i]]=0;
    }
    for (i in obj) {
        out.push(i);
    }
    return out;
}

var emailsFullList = [];

$('#email-extractor').keyup(function( index ) {
    var emails = extractEmails($(this).text());

    if (!emails) {
       $('#email-extracted').text('** No emails in comment');
    } else if (emails.length < 3) {
        emailsFullList = emailsFullList.concat(emails);
    } else {
        $('#email-extracted').text('** Ignoring comment, too many email addresses ('+emails.length+').');
    }
});

emailsFullList = eliminateDuplicates(emailsFullList);

$('#email-extracted').text(emailsFullList.join());

</script>

功能提取电子邮件(文本)
{
返回文本.match(/([a-zA-Z0-9.\u-]+@[a-zA-Z0-9.\u-]+\.[a-zA-Z0-9.\u-]+)/gi);
}
函数消除复制(arr){
var i;
var len=阵列长度;
var out=[];
var obj={};

对于(i=0;i您的代码似乎正在运行,唯一的问题是您没有正确地将文本添加到第二个文本区域:

演示

$(“#电子邮件提取器”).keyup(函数(索引){
var emails=extractEmails($(this).val());
控制台日志(电子邮件);
如果(!电子邮件){
$(“#提取电子邮件”).text(“**评论中没有电子邮件”);
}否则如果(电子邮件长度<3){
var text='';
对于(var i=0;i
试试这个

函数提取电子邮件(文本)
{
返回文本.match(/([a-zA-Z0-9.\u-]+@[a-zA-Z0-9.\u-]+\.[a-zA-Z0-9.\u-]+)/gi);
}
函数消除复制(arr){
var i;
var len=阵列长度;
var out=[];
var obj={};

对于(i=0;i
.text()
在处理文本区域/输入时应为
.val()
)-尽管这似乎不是问题您可以给出预期输入和输出的示例吗?您说您正在尝试“提取电子邮件”。从何处提取?我可以将此文本粘贴到第一个文本区域:“jhsdgf sdkfhksdhf sjkhf skhdkfheretohelpphp@hotmail.comsdflksfj sdfkarstenheretohelpphp@hotmail.comsdfds"我在第二个框中得到的文本如下:heretohelpphp@hotmail.com, karstenheretohelpphp@hotmail.comThank感谢您的时间。但是我发现您的代码在stackoverflow上运行时运行良好,我无法在我的网站上找到它。首先,您正在加载两个不同版本的jquery。这可能会导致问题谢谢你的时间。我发现代码在JSFIDLE上工作,但是当我在我的网站上使用代码时,它不工作。你知道为什么吗?