从电子邮件中删除联系信息

时间:2015-06-10 17:04:41

标签: javascript regex

我有时会让用户输入以下电子邮件:

John Smith <john@example.org>

我有一个像/(.+[ <>])/g这样的正则表达式,但这对此不正确。

我希望输出如下:

john@example.org

我只想要电子邮件组件,并且想要忽略用户可能提供的任何其他内容。

编辑:人们感到困惑。我只是希望输入结果与输出一样。这与验证无关。我已经有了验证。这与在输入验证之前清理输入有关。

4 个答案:

答案 0 :(得分:1)

也许这会有效,但您可能想根据要在电子邮件地址中允许的字符稍微修改一下

var color = hexConvert(bgColor);
if (color) {
    $(this).css({
        'box-shadow': '0px 4px 0px 0px' + ColorLuminocity(color, -0.1)
    });
}

答案 1 :(得分:1)

假设您输入的电子邮件始终带有“@”符号,您可以选择您的电子邮件使用您要接受的符号制作的单个令牌。 例如:

[A-Za-z0-9.]*?@[A-Za-z0-9.]*

test test test john smith@hotmail.com test

将导致

smith@hotmail.com

电子邮件可以包含破折号和下划线(john-smith@hotmail.com),因此请考虑将它们添加到[A-Za-z0-9.]字符类中,使其成为[A-Za-z0-9.\-_],或者您认为合适的任何字符。< / p>

答案 2 :(得分:0)

这样的东西?

false

答案 3 :(得分:0)

一衬垫:

var str = "John Smith <john@example.org>",
mail = /[^<>]+/g.exec(/<.+>/g.exec(str))[0];