正则表达式验证在java和java scipt的电子邮件地址
问题描述:
我们正在使用下面的正则表达式来验证电子邮件地址在java ^[\\w!#\\$'\\*\\+=\\?\\^\\/_~-]+(\\.[\\w!#\\$'\\*\\+=\\?\\^\\/_~-]+)*@([a-zA-Z0-9\\-]+\\.)+[A-Z]{2,4}$
和它工作正常与无效的电子邮件地址[email protected]&^(*&^(*^2
但是当我在JavaScript中使用相同的正则表达式,它不工作和失败,甚至有效的电子邮件地址。请建议可能是这种不匹配的根本原因?正则表达式验证在java和java scipt的电子邮件地址
例如,在JavaScript中,我越来越假值低于测试条件 -
/^ [\ w#\ $'\ * \ + = \ \^\/〜 - !?] +(\ [ \ w!#\ $'\ * \ + + = \?\^\/〜 - ] +)* @([a-zA-Z0-9 \ - ] + \)+ [AZ] {2, 4} $ /测试( “[email protected]”)
答
您需要\\
转换为\
在Javascript中的正则表达式文字:
/^[\w!#$'*+=?^\/~-]+(\.[\w!#$'*+=?^\/~-]+)*@([a-zA-Z0-9-]+\.)+[A-Z]{2,4}$/i.test("[email protected]")
也有许多特殊字符的正则表达式像$
,+
,*
等不需要在字符类内部转义,因此我已经从字符类中删除了不必要的转义。
答
试试这个,它适用于我。
/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$/.test('[email protected]');
<html>
<body>
<script>
var flag = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$/.test('[email protected]');
</script>
<h5><script>document.write(flag)</script></h5>
</body>
</html>
你为什么不使用专用的API为这个(mailapi)? – fge 2014-10-27 09:54:05
[使用正则表达式验证电子邮件地址]可能的重复(http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address) – 2014-10-27 09:59:58
抱歉,但它不是重复的。我可以谷歌,并从互联网上得到正则表达式,但我的要求是使用相同的regrx在Java程序中使用不工作。 – Raj 2014-10-27 10:03:14