Javascript jquery电子邮件提取器来自textarea
好的,我有两个不同id的文本区域。我正在尝试提取粘贴到第一个文本区域,然后显示到第二个文本区域的电子邮件。我知道我的jquery用于从页面中的文本中提取和排序电子邮件,但我似乎无法让它与textarea一起工作 我的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
<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上工作,但是当我在我的网站上使用代码时,它不工作。你知道为什么吗?