初学正则表达式,测试一下,最最最简单的qq邮箱验证。规定qq号码必须是5~12位的数字,后面必须跟".com",形如"12345@qq.com".
网上定义正则表达式的时候有的用引号,如var reg="content",有的用"/",如varreg=/content/.分别测试一下。会出现错误,不过错误不是显示正则表达式有问题,而是提示test不是一个方法。(不知道原因,求解答,我猜测是由于正则表达式不正确导致test方法没有识别?)如图:
换成"/"则没有问题了。所以正则表达式应该用"/"表示。下面是测试正确的邮箱例子上面是QQ号码为5位的情况。上面是QQ号码为12位的情况。下面是一些不符合规则的错误邮箱例子
这是号码小于5位的错误。这是号码不是纯数字的错误。这是结尾不是qq.com的错误。
这是号码超过12位的错误。
另外,由于规则写的[qQ][qQ],所以写成12345@qQ.com也是可以的,可以改成([q]{2}|[Q]{2}),这样12345@qQ.com或者12345@Qq.com就出错了。必须要写成qq或者QQ。如图:
下面解释一下/^\d{5,12}@[qQ][qQ]\.(com|cn)$/,^匹配你要用来查找的字符串的开头,$匹配结尾,\d匹配数字,{5,12}说明数字必须大于等于5小于等于12,([q]{2}|[Q]{2})表示要么q或者Q出现两次即qq或者QQ,由于.也是元字符,所以要使用的话必须转义"\"。
由于初学,正则表达式写得很幼稚,对比如abcd@qq.com,tom_sina@123.cn等等都不能判断。有很多改进的地方,比如用(?:com|cn)那么.com和.cn都可以使用,并且"?:"不捕获匹配的文本,提高程序执行速度(不过也有缺点,不能使用反向引用)等等等等。