我有时会让用户输入以下电子邮件:
John Smith <john@example.org>
我有一个像/(.+[ <>])/g
这样的正则表达式,但这对此不正确。
我希望输出如下:
john@example.org
我只想要电子邮件组件,并且想要忽略用户可能提供的任何其他内容。
编辑:人们感到困惑。我只是希望输入结果与输出一样。这与验证无关。我已经有了验证。这与在输入验证之前清理输入有关。
答案 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];