一直都知道正则表达式很牛,也学过好几次,到现在还是一点都记不起来,所以想借此机会好好整理一下。
如果你也是第一次看,记不住没关系,先明白大概的原理就行,其他的还是要多练,我们没有办法记住所有的事情的^_^
开发中我们经常会遇到这样的问题,对用户输入的手机号,邮箱进行校验,判断输入是否合法。
假设对手机号进行校验,如果不用正则表达式,我们会怎么校验呢?
先校验长度是否为11
判断第一位是否是1
判断其他位置是否为0-9的整数
整个判断代码会比较长,假如我们用正则表达式,可以这么校验
<script> function checkMobile(mobile_num){ var patt=/^1\d{10}$/ //声明一个正则表达式以/开始,/结束 return patt.test(mobile_num) //匹配成功返回true,失败返回false } alert(checkMobile("15600059664")) </script>
用正则表达式来校验就会看起来很优雅,对刚才的代码做一下解释
首先声明一个javascript 正则表达式对象,以“/”开始,“/”结束,中间的内容就是我们要学习的正则表达式
var patt=/^1\d{10}$/
^1 就是以1开头
\d 就是代表0-9的数字,\d{10},代表连续10个数字
$代表以什么结束,联合前面的就是以10个数字结束
整个表达式的含义就是,以1开头,然后是10个连续数字,然后结束,后面没有其他字符了,这实际就是一个手机号的规则
patt.test(mobile_num) //如果输入的手机号满足这个正则表达式,则返回true,否则false
可以看出,正则表达式就是一个式子,这个式子描述了一定的规则,我们可以用这个规则来匹配一些字符串
其实正则表达式我们很早就见过,比如我们搜索文件的时候,搜索“*.doc”,就是查找.doc文件,文件名任意,“*”就代表0或者无数个字符
正则表达式说难不难,说简单不简单,下面我们开始新的征程吧。
本教程参考以下大神文章,有需要可以自行查看
deerchao:http://deerchao.net/tutorials/regex/regex.htm
mdxy-dxy:http://www.jb51.net/article/110516.htm