电子邮件ID的正则表达式,以避免在文本字段中输入电子邮件

时间:2015-06-10 13:11:11

标签: javascript html regex

问题:我有一个textarea,我想限制用户输入他们的电子邮件ID。因此,当他们键入电子邮件ID时,文本区域应变为红色并弹出一条消息,说明"您无法在此字段中输入您的电子邮件地址"。

我的解决方案:以下是textarea的简单HTML代码:

<textarea class="replyToClient" placeholder="Message"></textarea>

我目前正在使用下面提到的javascript代码来检测电子邮件ID并将其替换为NULL。

<script type="text/javascript">
        //EMAIL ID DETECTION AND REPLACEMNET
        $(function() {
            $(".replyToClient").change(function() {
                $(this).val( function(idx, val) {
                    return val.replace(/\b(\w)+\@(\w)+\.(\w)+\b/g, "");
                });
            });
        });

        </script>

这样做取代了&#34; example@gmail.com"写在textarea空白。

期望:我正在尝试在此处构建强大的正则表达式,以便我可以检测任何形式的电子邮件ID,例如&#34;示例@ gmail&#34;或者&#34;以gmail dot com&#34;为例然后(简单部分)将其替换为textarea或者弹出一个弹出窗口。

所以,我关注的主要是正则表达式来检测电子邮件ID的原始格式以及上面提到的可能的破碎格式。

2 个答案:

答案 0 :(得分:1)

试一试:

val.replace(/\w+@\w+(\.\w+)?|\w+ at \w+ dot \w+/ig, "");

干杯

答案 1 :(得分:1)

对罗伯茨的一些更新回答。显示的正则表达式不处理破折号,下划线和点不符合,这是电子邮件的标准,以及基于英格兰的电子邮件(.co.uk)

这对第一个词很重要。 john-wick@gmail.comjohn-wick at gmail dot com将分别生成wick@gmail.comwick at gmail dot com,在您的文字区域留下不需要的字词。尝试:

[A-Za-z0-9.\-\_]*?@\w+(\.\w+)?(\.\w+)?|[A-Za-z0-9.\-\_]*? at \w+ dot \w+( dot \w+)?

正则表达式似乎适用于所有提到的可能性john-wick@gmail.comjohn-wick at gmail dot comjohn-wick@example.co.ukjohn-wick at example dot co dot uk

如果有其他破碎的格式,人们往往会写他们的电子邮件,他们应该一次处理一个。