jquery电子邮件提取器实时从文本区域
jquery email extractor live from textarea
好的,所以我有 2x 具有不同 id 的文本区域。我正在尝试提取粘贴到第一个文本区域然后显示到第二个文本区域的电子邮件。我知道我的jquery工作是从页面中的文本中提取和排序电子邮件,但我似乎无法让它与文本区域一起使用。
我的文本区域代码如下:
<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>
您的代码似乎正常工作,唯一的问题是您没有正确将文本添加到第二个文本区域:
演示:http://jsfiddle.net/nkLvwtLa/
$('#email-extractor').keyup(function (index) {
var emails = extractEmails($(this).val());
console.log(emails);
if (!emails) {
$('#email-extracted').text('** No emails in comment');
} else if (emails.length < 3) {
var text = '';
for (var i = 0; i < emails.length; i++) {
text += emails[i] + ',';
}
$('#email-extracted').text(text);
} else {
$('#email-extracted').text('** Ignoring comment, too many email addresses (' + emails.length + ').');
}
});
试试这个...
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).val());
if (!emails) {
$('#email-extracted').val('** No emails in comment');
} else if (emails.length < 3) {
emailsFullList = emailsFullList.concat(emails);
} else {
$('#email-extracted').val('** Ignoring comment, too many email addresses ('+emails.length+').');
}
emailsFullList = eliminateDuplicates(emailsFullList);
$('#email-extracted').val(emailsFullList.join());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<textarea id="email-extractor" class="email-extractor-textarea"></textarea>
<textarea id="email-extracted" class="email-extractor-textarea"></textarea>
您需要移动这些行...
emailsFullList = eliminateDuplicates(emailsFullList);
$('#email-extracted').text(emailsFullList.join());
到您的.keyup()
否则它们仅在页面加载时运行。此外,在使用textarea
时,我认为您应该使用.val()
而不是.text()
来获取/设置值
相关文章:
- onkeyup无法动态创建多个文本区域
- 具有所有样式的文本正在复制到可编辑文本区域
- 在文本区域POST后解码JSON
- 在文本区域中使用jQuery.text()保持换行符
- ng在下拉列表和文本区域提交
- 将文本插入光标所在的文本区域
- 离开页面导航后保留文本区域内容
- Javascript-在文本区域中断,但不在段落中中断
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 测试文本区域中的特定文本格式
- 文本编辑后,append函数不适用于文本区域
- 如何在ReactJs中链接下拉列表和文本区域
- I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用
- 使用JSON文件中的变量(字符串)填充文本区域
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 如何为动态创建的文本区域中输入的值更新ng模型
- 延迟高亮显示文本区域中的文本
- 将字母添加到文本区域的末尾
- TinyMCE在新添加的文本区域