javascript - 如何将每个电子邮件地址装箱?[Javascript]
问题描述
如何获取输入的每个电子邮件地址?一切正常,除了输入中的设计
在邮箱中看起来像这样,而不是 html 格式:
<span class="emBox">hello@world.org</span>, <span class="emBox">stack@overflow.org</span>,
javascript:
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('<span class="emBox">' + m + '</span>');
}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(', '));
}
例子:
解决方案
好吧,您所做的只是在文本区域内插入纯文本。
要将这些呈现为 HTML,请拥有一个容器 div:
<div id="container"></div>
并在 div 的 innerHTML 中插入 span:
var div = document.getElementById("container");
div.innerHTML = (temp.length ? temp : '' + emails + "").join(', '));
推荐阅读
- amazon-web-services - 尝试导出发电机数据库表并写入 csv 文件时出现 UnicodeEncodeError
- c++ - 是否可以将文件从主机操作系统复制到在 virtualbox 中运行的来宾操作系统?(不是文件夹共享)
- python-3.x - 在 Docker 容器中运行应用程序单元测试
- java - 如何在 Java 代码中创建 jdbc 请求的 Jmeter 测试
- c# - 反向执行算法的简写
- c++ - C++ DLL(可从 VBA 调用并接收 Range 数据)
- sql-server - MS SQL 作业在具有 Windows 身份验证的链接服务器上运行存储过程
- javascript - Wordpress,Divi 主题:博客模块未呈现文章图像
- java - 如果用户单击接受,任何人都可以解决如何实现循环的问题。这样我就可以在数据库中更新
- rtmp - RTMP 中如何包含 flv 格式?