正则表达式:缩写为RegExp。是一种对文本字符串进行验证、格式化的非常强大的工具。使用正则表达式可以轻松的识别和操纵文本,从而节省大量的编程时间。例如:验证用户的输入的电话号码、身份证号、电子邮件、QQ号码等是否符合正确格式。

正则表达式的语法:

    var reg = /pattern/flags

    patten(模式)部分任何简单或复杂的正则表达式。包含字符、限定符、分组、查找及反向引用等。

    flags(标识)每个正则都有一个或多个flags

    g  全局模式,即不会在发现第一个匹配项是停止

    i  不区分大小写模式

    m  多模式,即在达到一行文本末尾时,还会继续查找一下是否存在匹配的项。

一、元字符

字符          匹配

\                 在字面意义和特殊义之间切换

·                 除了换行符外的任何字符

^                 脱字符,字符串的开头

$                字符串的结尾

*                 匹配前一项零次或多次,等价于{0,}

+                匹配前一项一次或多次,等价于{1,}

?              匹配前一项零次或一次,等价于{0,1}

\s               任何一个空白符(\f\n\r\t\v)

\S               非空白字符

\f               换页符

\n              换行符

\r               回车符

\t               制表符

\d               0~9任意数字,相当于[0-9]

\D               任何非数字

\w               任何字母、数字及下划线

\W               除数字、字母及下划线外的其他字符

{n}               前面的字符正好出现n次,n代表数字

{n,}               前面的字符至少出现n次

{n,m}            前面的字符出现n~m次

[abcd]          与[]中任何字符匹配的字符串

[^abcd]          与[]中任何字符都不匹配的字符集

[a-z]          与[]中的字符串范围匹配的字符集

()              一个组,即括号中的作为一个整体

x|y             x或者y。优先匹配左边,左边能匹配上,右边就不匹配

 

二、正则表达式的方法

    1、test()返回布尔类型,如果有匹配项返回true,没有返回false

    2、exec()查找并返回匹配结果,并以数组的形式返回。数字的第一项即为匹配的结果。没有匹配结果返回null。

exec()受到flags参数g 的影响。如果指定了g,则下次调用exec()时,会从上匹配的lastindex开始查找

 

三、在string对象的方法中使用正则

    1、search()

        参数传递一个正则表达式,返回结果是第一个与正则匹配的字串的起始位置。如果找不到匹配的的字串,返回-1

        search()方法不如全局检索,会忽略正则表达式中的flags符号g

    2、replace()

        用来执行检索和替换,第一个参数是正则表达式,第二个参数是要替换的字符串。支持全局检索,如果正则表达式加"g",则会替换所有匹配的字串,否则只替换第一个。

    3、split()

        将字符串按照指定的分隔符分割成数组,参数可以是一个正则表达式。正则能够匹配的字符串都可以作为分隔符

    4、match()

        是字符串执行匹配正则表达式规则的方法。参数为正则表达式。返回结果是一个数组,内容为所有匹配

四、正则表达式的量词

    n+:匹配任何包含至少一个n的字符串

    n*:匹配之前紧邻的元素,不管该元素是否出现,都匹配成功。

    n?:匹配其之前紧邻的元素,不管该元素是否出现,都匹配成功。

    n{X}:匹配包含X个n的系列的字符串

    n{X,Y}:匹配包含X到Y个n的序列的字符串

    n{X,}:匹配包含至少X个n的序列的字符串

    n$:匹配任何结尾为n的字符串

    ^n:匹配任何开头为n 的字符串

    ?=n:匹配任何其后紧接指定字符串n的字符串

    ?!n:匹配任何其后没有紧接指定字符串n的字符串

    |:匹配左边或者右边,表示或者的意思

    \:转义符

    

posted on 2019-08-22 09:10  十八闲客·  阅读(254)  评论(0编辑  收藏  举报