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