问题:我有一个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的原始格式以及上面提到的可能的破碎格式。
答案 0 :(得分:1)
试一试:
val.replace(/\w+@\w+(\.\w+)?|\w+ at \w+ dot \w+/ig, "");
干杯
答案 1 :(得分:1)
对罗伯茨的一些更新回答。显示的正则表达式不处理破折号,下划线和点不符合,这是电子邮件的标准,以及基于英格兰的电子邮件(.co.uk)
这对第一个词很重要。 john-wick@gmail.com
和john-wick at gmail dot com
将分别生成wick@gmail.com
和wick at gmail dot com
,在您的文字区域留下不需要的字词。尝试:
[A-Za-z0-9.\-\_]*?@\w+(\.\w+)?(\.\w+)?|[A-Za-z0-9.\-\_]*? at \w+ dot \w+( dot \w+)?
正则表达式似乎适用于所有提到的可能性john-wick@gmail.com
,john-wick at gmail dot com
和john-wick@example.co.uk
,john-wick at example dot co dot uk
。
如果有其他破碎的格式,人们往往会写他们的电子邮件,他们应该一次处理一个。