Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 电子邮件的Html5模式属性不匹配(user@gmail.com)_Regex_Html_Html Email_Email Validation_Html Input - Fatal编程技术网

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

Regex 电子邮件的Html5模式属性不匹配(user@gmail.com),regex,html,html-email,email-validation,html-input,Regex,Html,Html Email,Email Validation,Html Input,我是HTML5新手 这里我有一些问题与电子邮件模式属性 1) 如果我像这样输入user@gmail.com... 在电子邮件字段中 2) 它不接受值并显示“模式不匹配” 帮我修一下 下面是Html的片段 <form name='f1' method="POST" action="" > <div id="fp"> <span style="margin-left:-50px">Email:</span>&

我是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>    

电邮:


任何建议都可以接受

您还需要考虑较低的案例。或者不区分大小写。但实际上,你应该使用:

^.+@.+$

然后向他们应该遵循的地址发送一封确认电子邮件,因为电子邮件地址相当复杂,你最终会用正则表达式阻止你不打算使用的东西,而且这不会阻止别人输入假电子邮件地址。

这应该是正确的模式

[^@]+@[^@]+\.[a-zA-Z]{2,6}
是的,你忘了考虑小写了。

有关详细信息,请参阅本文档


我现在正在使用这种模式,似乎效果很好:

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

仅仅使用HTML5属性“模式”很难正确验证电子邮件。如果您不使用“模式”,将处理某个人@。这是无效的电子邮件


使用pattern=“[a-zA-Z]{3,}@[a-zA-Z]{3,}.[.]{1}[a-zA-Z]{2,}.[.]{1}[a-zA-Z]{2,}”将需要使用以下格式:someone@email.com已接受的答案将无法验证marian@iflove.technology 在这种情况下,不要错过所有你可以使用的新域名电子邮件:

[^@]+@[^@]+\.[a-zA-Z]{2,}
与输入类型电子邮件一起使用,如下所示:

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

我覆盖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')
})

只需删除
模式
属性即可。
type=“email”
就足够了。

但在这一封信之后,它检查到@,然后它就不考虑整体了。。例如如果我喜欢打字user@g它把它当作电子邮件。。。但实际上user@gmail.com是正确的格式。。。我怎么能这么做…那从来都不对。与国际化TLD不匹配(info@example.xn--xkc2dl3a5ee0h)或更长的TLD(info@example.exchange)怎么样
^[^@]+@[^@]+\.[^@]+$
用于更长的域?info@dot.swiss不同意。info@dot.swiss不同意。hello@world不同意这仍然允许出现一个糟糕的电子邮件示例,如'hello@world'仍然不允许使用正确的电子邮件格式,例如'hello@world.com”“不正确。HTML5不会捕捉到像这样的坏邮件”hello@world“@JesseNovotny根据RFCs进行的全面检查很难正确进行,也很难实施。对于通常的应用程序,最好让库和其他可用的工具为您进行检查,即使这并不完美。决定“hello@world无效。您需要检查“world”是否为FQDN。这对于文本输入来说太复杂了。例如“spam@ai“是有效的电子邮件地址。这是此处所有答案中唯一正确的regexp。与所有可能的电子邮件地址匹配的功能齐全的regexp是一个页面长的灰色矩形,这会引起严重的问题-请参阅。请看-它包含有效电子邮件地址的很好示例,如
”Abc@def“@example.com
(其中一个不错的例子)。