繁体   English   中英

如何获取盒装的每个电子邮件地址? [使用Javascript]

[英]How to get each email address in boxed? [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中插入跨度:

var div = document.getElementById("container");
div.innerHTML = (temp.length ? temp : '' + emails + "").join(', '));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM