正则表达式-简介

阅读: 15968    发布时间: 2018-01-11 15:41:42

一直都知道正则表达式很牛,也学过好几次,到现在还是一点都记不起来,所以想借此机会好好整理一下。

如果你也是第一次看,记不住没关系,先明白大概的原理就行,其他的还是要多练,我们没有办法记住所有的事情的^_^


开发中我们经常会遇到这样的问题,对用户输入的手机号,邮箱进行校验,判断输入是否合法。

假设对手机号进行校验,如果不用正则表达式,我们会怎么校验呢?

  • 先校验长度是否为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