首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery验证电子邮件

使用jquery验证电子邮件
EN

Stack Overflow用户
提问于 2011-05-31 18:27:15
回答 4查看 164关注 0票数 0

我有电子邮件的数据:数据模式就像:first_name last_name email

data = foo bar foo@bar.com, foo baz foo@baz.com,foo foo foo@foo.com,bar@bar.com , bar baz bar@baz.com

它可能包含空间。我必须通过提取数据来验证所有的电子邮件。注意到:在单词之间可能有空格,这样按空间分裂给我提供了更多不想要的数据。

代码语言:javascript
复制
function validate() {
    email_data = data.split(',') // This will get the all data spliting by ','
    for (i = 0; i<email_data.length; i++) {
        email_new_data = email_data.split(' ')  //spliting data by space

        // Now I could not find the way to extract emails (only ) from data
    }
}

任何建议都会有帮助。谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-31 18:40:31

下面的函数将主data字符串拆分为一个数组,然后可以用RegExp解析该数组。据我所知,您只想获得电子邮件地址;因此,我们使用Regular Expression来匹配电子邮件地址。如果匹配,您有一封有效的电子邮件。如果没有匹配,那么基本上在给定的段上没有有效的电子邮件。

请注意,Regular Expression 100%成功的电子邮件验证是不可能的;因为RFC非常复杂,请查看这里的更多信息:http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html

代码语言:javascript
复制
function validate() {
    data = "foo bar foo@bar.com, foo baz foo@baz.com,foo foo foo@foo.com,bar@bar.com , bar baz bar@baz.com";
    email_data = data.split(','); // This will get the all data spliting by ','
    for (i = 0; i < email_data.length; i++) {
        // Get emails, change console.log to alert if you don't know how to use console.
        console.log(email_data[i].match(/[\w._+-]+@[\w._+-]+\.[\w]{2,6}/));
    }
}
validate();

工作实例:

http://jsfiddle.net/kuroir/H7VaT/

票数 1
EN

Stack Overflow用户

发布于 2011-05-31 18:32:40

代码语言:javascript
复制
var email_list = new Array();
var k = 0;

for (j=0; i<email_new_data.length; i++) {
    if (email_new_data.search('@') != -1) {
        email_list[k++] = email_new_data;
    }
}

除非你的名字里有@的人,否则它应该能起作用.(这是为了防止在名称/空名称字符串中有空格的人)

票数 0
EN

Stack Overflow用户

发布于 2011-05-31 18:37:21

你需要澄清一下你想做什么吗?从你的措辞判断,你想要验证电子邮件地址。下面是一些未经测试的代码:

代码语言:javascript
复制
var emailpattern = new RegExp("^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-z]{2,4}$");

function validateEmail(email){
    return emailpattern.match(email);
}

function processEmail(emailData){
    emailData = emailData.split(' ');
    var firstName = emailData[0];
    var lastName = emailData[1];
    var email = emailData[2];

    if (validateEmail(email)){
        // Your stuff if valid
    } else {
        // If email is not valid
    }
}

var data = data.split(','); // Whereever you get your data from
for (var i=0; i<data.length; i++){
    processEmail(data[i]);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6191853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档