regex Html5模式属性与电子邮件(user@gmail.com)不匹配

j0pj023g  于 2023-01-18  发布在  HTML5
关注(0)|答案(7)|浏览(173)

我是HTML5新手...
这里我有一些问题与电子邮件模式属性...
1)如果我在电子邮件字段中输入user@gmail.com ...
2)它不接受值并显示“模式不匹配”。
帮我解决这个....
下面是Html的代码片段

<form name='f1' method="POST" action=""  >     
  <div id="fp">

        <span style="margin-left:-50px">Email:</span>&nbsp;&nbsp;
        <span><input  class="input" type="email" name="Email" placeholder="Enter mailID" required pattern="^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$" ></span><br>

         <input type="submit"  name="submit" value="submit">

   </div>
  </form>

任何建议都可以接受......

eoxn13cs

eoxn13cs1#

这应该是正确的模式

[^@]+@[^@]+\.[a-zA-Z]{2,6}

是的,你忘了考虑小写。
有关详细信息,请参阅此文档
html5-使用正则表达式进行表单验证

8mmmxcuj

8mmmxcuj2#

接受的答案将不会验证marian@iflove.technology在这种情况下,不要错过所有这些新域名的电子邮件,如http://www.iflove.technology/,您可以用途:

[^@]+@[^@]+\.[a-zA-Z]{2,}

与输入类型电子邮件一起使用,如下所示:

<input type="email" pattern="[^@]+@[^@]+\.[a-zA-Z]{2,}">
0s0u357o

0s0u357o3#

你也需要考虑小写,或者让它不区分大小写,但实际上你应该用途:

^.+@.+$

发送一封确认邮件到他们应该遵循的地址,因为电子邮件地址相当复杂,你最终会阻止你不打算用正则表达式的东西,而且无论如何,它不会阻止有人输入假的电子邮件地址。

brgchamk

brgchamk4#

简单地使用HTML5属性“模式”是很难正确验证电子邮件的。如果你不使用“模式”,某人@将被处理。这不是有效的电子邮件。
如果使用模式="[a-zA-Z]{3,}@[a-zA-Z]{3,}[.]{1}[a-zA-Z]{2,}[.]{1}[a-zA-Z]{2,}”,则要求格式为someone@email.com

kqqjbcuj

kqqjbcuj5#

只需删除pattern属性,type="email"就足够了。

ep6jt1vc

ep6jt1vc6#

我现在用的是这个模式,看起来效果不错:

[a-zA-Z0-9._\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,4}
q5lcpyga

q5lcpyga7#

我的解决方案覆盖html5验证type='email'.我在DOM加载后运行这段代码

$(document).ready(function(){
  $('input[type=email]').attr('pattern', "^([\\w]+[\\.]{0,1})+@([\\w-]+\\.)+[\\w]{2,4}$").attr('type', 'text').attr('title', 'Please enter an email address')
})

相关问题