正则的用处和语法

正则:就是处理字符串的一个规则

用处:

  1.匹配:字符串是否匹配规则,返回值是布尔值(test)

  2.捕获:捕获字符串中符合规则的部分,返回值是null或数组(exec)

组成:元字符和修饰符

正则的构建:字面量(/\d/)和实例创建(new RegExp("\\d")),两者有区别,区别另说,常用字面量方式

元字符://之间的具有意义的字符,分为两组

1.具有特殊意义的元字符

  • \ - 转义字符
  • ^ - 以某个元字符开头,不占位置
  • $ - 以某个元字符结尾,不占位置
  • . - 除了\n意外的任意一个字符
  • \n - 换行符
  • () - 分组,把一个大正则本身划分成几个小的正则
  • x|y - x或者y中的一个
  • [xyz] - xyz中的任意一个
  • [^xyz] - 除了xyz以外的任意字符
  • [a-zA-Z0-8] - a-z,A-Z,0-8中的任意一个字符
  • \d - 0-9的任意一个字符
  • \D - 除0-9以外的任意字符
  • \b - 匹配边界符
  • \w - 字母,数字,下划线的任意一个字符,等同于[0-9a-zA-Z_]
  • \s - 表示空白字符,空格,制表符,换页符的任意一个

 

2.代表出现次数量词的元字符

  • * - 大于等于0次
  • + - 大于等于1次
  • ? -  0或1次
  • {n} - n次
  • {n,} - 大于等于n次
  • {n,m} - 大于等于n且小于等于m次

 

 

3.修饰符

img

ignoreCase:忽略大小写

multiLine:多行也可以匹配

global:全字符串范围内

如/\d/g.exec("abcd"),不加g只会找一次,加了g会把符合条件的都找出来

 

 

个人觉得要注意的地方:

1.中括号里的基本所有的字符都表示自身的意思,特殊的是 ^和-,

^后面有内容的时候表示非,否则表示其自己

-前后有内容的时候表示范围,否则表示其自己

2. abcd|efgh,首先|不能加空格,不然会匹配空格,然后,|左右两边可以看成一个整体,出现某一侧即可,也就是上面的匹配 abcd 或 efgh ,而不是|临近的de,还有个常遇到的/^66|77$/,还是一分两半,要不以66开头,要不77结尾

 

posted @ 2017-02-04 15:53  花.花  阅读(304)  评论(0编辑  收藏  举报