我们使用下面的正则表达式来验证java ^[\\w!#\\$'\\*\\+=\\?\\^\\/_~-]+(\\.[\\w!#\\$'\\*\\+=\\?\\^\\/_~-]+)*@([a-zA-Z0-9\\-]+\\.)+[A-Z]{2,4}$
中的电子邮件地址,并且它与无效的电子邮件地址raju.rathi@gmail.com&^(*&^(*^2
一起工作正常但是当我在javascript中使用相同的正则表达式时,它并没有使用有效的电子邮件地址工作和失败。请说明这可能是造成这种不匹配的根本原因?
例如在javascript中,我通过以下测试条件得到假值 -
/ ^; - +(\ [\ W#\ $&#39 [\ W#\ $&#39 \ * \ + = \ \ ^ \ / 〜!?];!\ * \ + = \ \ ^ \ / 〜 - ?] +)* @([A-ZA-Z0-9 \ - ] + \)+ [A-Z] {2,4} $ /测试。(" raju.rathi@gmail.com")
答案 0 :(得分:3)
您需要在Javascript正则表达式字面值中将\\
转换为\
:
/^[\w!#$'*+=?^\/~-]+(\.[\w!#$'*+=?^\/~-]+)*@([a-zA-Z0-9-]+\.)+[A-Z]{2,4}$/i.test("raju.rathi@gmail.com")
还有许多特殊的正则表达式字符,如$
,+
,*
等,不需要在字符类中进行转义,因此我已从您的字符类中删除了不必要的转义。< / p>
答案 1 :(得分:0)
试试这个,它对我有用。
/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$/.test('raju.rathi@gmail.com');
<html>
<body>
<script>
var flag = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$/.test('raju.rathi@gmail.com');
</script>
<h5><script>document.write(flag)</script></h5>
</body>
</html>
&#13;