馬乍

JavaScript正则表达式

学习,留个笔记。

1.JavaScript应用正则的俩种方式

  ·字面量:

 var reg = /\bis\b/g; //\b代表单词边界
 'He is XiaoMing, a good student'.replace(reg, 'Is'); //将is替换为Is              

  ·构造函数:

var reg = new RegExp('\\bis\\b', 'g'); //全部的单词is,\写两边是为了转义\
'He is XiaoMing, a good student'.replace(reg, 'Is'); //将is替换为Is

2.修饰符
  ·g:global全文搜索,不添加的话,搜索到第一个匹配后返回
  ·i:ignore case 忽略大小写,默认是大下写敏感
  ·m:multiple lines 多行搜索匹配

3.正则表达式由 原义文本字符 和 元字符 组成

   ·原义文本字符:代表字符自身的含义,比如abc

   ·元字符:有特殊含义的字符串。比如\b,代表单词边界

※特别要注意: *+^$.|_(){}[]

4.字符类:使用[]构建,比如表达式[abc]表示匹配字符a或者b或者c

5.字符类取反:使用^创建,表示匹配不属于这一类的内容,比如[^abc],表示匹配不是a或者b或者c

6.范围类:使用-创建,比如[a-z]表示从a到z的任意字符,注意是保护边界a和边界z的

   ·想匹配字符-的话,只需要[a-z-]即可

7.预定义类及边界

    字符   含义
    .      除了回车符和换行符以外的所有字符
    \d     数字字符0到9
    \D     非数字字符
    \s     空白符
    \S     非空白符
    \w     单词字符(字幕,数字下划线),等价于[a-zA-Z_0-9]
    \W     非单词字符

   ·边界

    字符   含义
    ^     以xxx开始
    $     以xxx结束
    \b    单词边界
    \B    非单词边界

8.量词

    字符   含义
    ?      出现0次或者1次(最多出现一次)
    +      出现1次或者多次(至少出现一次)
    *      出现0次或者多次(任意次)
    {n}    出现n次
    {n,m}  出现n到m次
    {n,}   至少出现n次

比如表达式\d{5},表示数字连续出现5次

9.贪婪模式:尽可能多的匹配,比如\d{3,6},会按照最大6位数字匹配

   非贪婪模式:尽可能少的匹配,量词后加上?,比如\d{3,6}?,会按照最小3位数字匹配

10.分组

  使用()进行分组,比如([a-z]\d){3},表示匹配a到z的字母加一个数字连续出现3次的情况

11.或 逻辑用|进行实现

12.反向引用,分组后使用$1实现

    '2016-11-25'.replace(/(\d{4})-(\d{2})-(\d{2})/g, '$2/$3/$1')
    "11/23/2016"

13.忽略分组:在分组()中添加:?

 

posted on 2016-08-16 00:54  馬乍  阅读(216)  评论(0编辑  收藏  举报

导航