我用这个
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
Run Code Online (Sandbox Code Playgroud)
regexp验证电子邮件
([\w\.\-]+)
- 这是针对第一级域名(许多字母和数字,也是点和连字符)
([\w\-]+)
- 这是针对二级域名
((\.(\w){2,3})+)
- 这适用于其他级别域名(从3到无穷大),包括一个点和2或3文字
这个正则表达式有什么问题?
编辑:它与"something@someth.ing"电子邮件不符
我正在制作一个非常简单的电子邮件验证脚本,基本上只是检查以下内容
我知道有更多的检查,但我看看这些正则表达式规则,我的思想停止工作.我想如果我从像这样小的东西开始,我可能能够围绕更复杂的规则.
目前使用一些jquery我做以下事情:
var booking_email = $('input[name=booking_email]').val();
if(booking_email == '' || booking_email.indexOf('@') == -1 || booking_email.indexOf('.') == -1) {
// perform my alert
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,这足以阻止90%的虚假电子邮件...我只想让它更有效,因为目前我的规则将允许电子邮件,如"@ domain.com"或"user @ domain".因为它只检查是否有一个fullstop和一个@符号.
谢谢你的任何提示.
即使顶级域名不存在,html5中的input type = email标签仍然有效
<form action = "yourPage" method = "get">
<input type = 'email' name ="emailName" >
<input type = 'submit'>
</form>
Run Code Online (Sandbox Code Playgroud)
例如:如果我们输入
foo@bar
Run Code Online (Sandbox Code Playgroud)
代替
foo@bar.com
Run Code Online (Sandbox Code Playgroud)
表格将被提交.谁能解释为什么它会像这样.
我注意到内置的浏览器验证<input type="email" />
需要格式化xxx@xxx
.只@
需要角色.没有像点那样的点email@stackoverflow.com
.
它与流行的jQuery.inputmask相同,email
别名规则也不需要点.
我只是好奇.现在是忽略电子邮件验证中的点的标准方法吗?我没有在根级域名上看到任何电子邮件地址.忽略点的原因是什么?
我想验证uris,如:
http://vk.com
http://semantic-ui.com/collections/menu.html
https://translate.yandex.ru/?text=poll&lang=en-ru
Run Code Online (Sandbox Code Playgroud)
并不是
www.vk.com
abdeeej
http://vk
Run Code Online (Sandbox Code Playgroud)
但还没有找到任何本机代码实现包。
我怎样才能做到这一点?
目前Symfony 的EmailType允许任何电子邮件,例如:
"whatever@domain"
因此没有针对电子邮件域的验证
让它只接受电子邮件的最佳方法是什么:
"whatever@domain.something"
因此该域应至少包含一个点。
由于这应该是一个常见问题,我想知道是否已经有一种内置的方法来完成它。
我注意到这是一个痛苦的屁股.类型="电子邮件"的HTML5验证器似乎不适用于Ionic(View).我尝试了一切可能的方法,但它没有用.
我在用:
离子(查看)
角
HTML5
这是我现在的HTML:
<input class="testinput" type="email" name="email"
ng-model="userRegistration.email" type="text"
pattern="/^[_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]*\.([a-z]{2,4})$/"
required>
Run Code Online (Sandbox Code Playgroud)
也尝试了这个type="text"
,但也没有工作.我可以在使用电子邮件时验证表单:"blablabla"我不使用@
符号,当然这是错误的.
我也这么试过,就是:[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,63}$
和ng-pattern
,但我没有得到一个错误,我可以只用随机文本注册,而不会被验证停止.
所以我的问题是:我该如何解决这个问题?解决这个问题的最佳方法是什么?
我检查过: