JS正则表达式学习二:简单的email验证看正则表达式的语法

时间:2022-09-24 08:20:43

4. test方法

上一篇文章中的对应的String方法即search(regexp),replace(regexp,"..."),match(regexp),使用的语法都是【something验证使用regexp】。而这一篇文章中的主线是regexp方法中的test()方法,它使用的语法是【使用regexp验证something】,即regexp.test(something),意思是使用regexp验证某String是否完全符合regexp的模式,如果符合,即返回true,如果不符合,即返回false;

正则表达式的准备知识:

1. 【()】表示一个整体
2. 【^something】表示以……为开始
3. 【something$】表示以……为结束
4. 【[abc]】表示可以是a,b,c中任意一个字符

    1)[a-z]表示可以是a到z之间的任意字符,数字,大写字母也是相似的使用方法

5. 【{}】有关的一些语法解释:

    1){n,m}:匹配前一项至少n次,最多m次

    2){n, }:匹配前一项至少n次,无上限

    3){n}匹配前一项有且仅有n次【上面这三个方法是最主要的方法,其它的方法都是它们的延伸而已】

    4)?匹配前一项0次或1次

    5) +匹配前一项1次或多次

    6)*匹配前一项0次或多次

下面是各种邮箱的形式:

    abc123@126.com

    abc123_567_abcmm@126.com

    abc123_567-abcmm@126.com

    abc123_-mmnn@15.com.cn

即@之前都是开关,而@只有一个,@之后是结尾,后面可以有一个点,也可以有两个点,每一个点后面的文字可以是两个或三个。

下面是在网上看到的一段模式匹配代码,觉得写的非常的容易理解,就使用了。

 /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/

最后,开始在页面中写数据进行验证

首先是最简单的html:

<input type="text" name="email" id="myEmail" class="email" value="">
下面是javascript:

<script type="text/javascript" src="js/jquery-1.6.min.js"></script>
<script type="text/javascript">
var allEmails = document.getElementsByName("email");
//得到email的匹配模式
var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
$(".email").blur(function() {
if(reg.test($(this).val())) {
$(this).after("输入正确了哦");
}else{
$(this).after("输入不正确,请重新输入");
$(this).val("");
}
})
</script>

这样,就可以在页面中验证这一个是不是一个邮箱了。对应到其它的数据验证也可以采用相似的道理。