Jquery 值匹配正则表达式

我试图通过 JQuery 验证 E-Mail 的输入:

我的 JQuery

<script>
/* <![CDATA[ */
jQuery(function(){
$( ".mail" ).keyup(function() {
var VAL = $(this).val();
var email = new RegExp(^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$);


if(VAL.test(email)){
alert('Great, you entered an E-Mail-address');
}
});
});
/* ]]> */
</script>

即使我输入 example@example.com,也不会收到警报。 我已经试过了. test ()和. match () ,我做错了什么?

256879 次浏览

改成这样:

var email = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;

这是一个传递给 i标志的正则表达式文字,意思是不区分大小写。

请记住,电子邮件地址验证是 用力(在 MasteringVericalExpressions 的末尾有一个4或5页的正则表达式来演示这一点) ,您的表达式当然不会捕获所有有效的电子邮件地址。

  • 向 RegExp 传递字符串或使用 //语法创建正则表达式
  • 呼叫 regex.test(string),而不是 string.test(regex)

那么

jQuery(function () {
$(".mail").keyup(function () {
var VAL = this.value;


var email = new RegExp('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$');


if (email.test(VAL)) {
alert('Great, you entered an E-Mail-address');
}
});
});