正则

来源:互联网 发布:iso软件如何卸载 编辑:程序博客网 时间:2024/06/03 15:40

正则

1、正则是什么?如何学习?

正则就是由相关‘元字符’和‘修饰符’组成的一个规则,用来匹配、验证或者捕获字符串中某些内容的规则(正则仅仅是用来处理字符串的)
- 元字符
- 修饰符
- 编写常用的正则
- 正则的验证
- 正则的捕获
- 正则的一些小实战以及一些常规方法的封装:myQueryURLParameter、myTrim、myFormatTime….

复习字符串中常用的方法
  • charAt / charCodeAt :根据索引获取指定位置的字符(或者字符的Unicode编码值)
  • String.fromCharCode([unicode编码]):通过指定的编码获取对应的字符
  • substr(n,m):从索引n开始截取m个字符(m不写截取到末尾),n和m不支持负数…
  • substring(n,m):从索引n开始找到索引为m处(不包含m)…
  • slice(n,m):和substring一样,只是可以支持以负数作为索引(负数索引:总长度+负数索引,得到的结果就是查找的索引位置)
  • indexOf / lastIndexOf :找到字符在字符串中第一次或者最后一次出现位置的索引,如果没有这个字符返回的是-1(通过这个机制也可以判断当前的字符串中是否包含这个字符)
  • search:和indexOf 相同,都是获取字符出现位置的索引,只是search可以支持正则
  • toUpperCase / toLowerCase:把一个字符串中所有字符转换成大写或者小写
  • split:按照指定的分隔符,把一个字符串拆分成数组中的每一项,可以支持正则
  • replace:把字符串中的原有字符进行替换,在不使用正则的情况下,执行一次replace,只能替换一次,这个方法也可以支持正则
  • match:根据正则匹配到所有符合规则的结果,最后以一个数组来存储
  • localeCompare :两个字符串之间的比较,按照每一个字符的Unicode编码值一个个比较…
  • trim / trimLeft / trimRight:去除字符串的首尾空格(trimLeft去除首空格/trimRight去除尾空格),但是这个方法不兼容
正则的元字符

只要在“/元子符/”之间包含起来的,都是正则的元字符

  • 特殊元字符
    • \ 转义字符(把有意义和没意义的字符来回转)
    • . 除了\n以外的任意字符
    • \n 换行符
    • ^ 以xxx开始
    • $ 以xxx结束
    • \d 匹配0-9之间的任意数字 \D:除了0-9之间数字的任意字符
    • \b 匹配一个边界
    • \w 匹配数字、字母、下划线中的任意字符
    • \s 匹配一个空白字符
    • [xyz] x或者y或者z中的一个,例如:[abcd]四个字母中的任意一个
    • [^xyz] 除了三个以外的任意字符
    • [a-z] 匹配a-z中的任意字符
    • [^a-z] 匹配除了a-z中的任意字符
    • x|y 匹配x或者y中的任意一个
    • () 分组
    • ?: 只匹配不捕获
    • ?= 正向预查
    • ?! 负向预查 两个预查也起到了只匹配不捕获的作用
  • 量词元字符
    • * 出现零次或者多次
    • ? 出现零次或者一次
    • + 出现一次或者多次
    • {n} 出现n次
    • {n,} 出现n到多次
    • {n,m} 出现n到m次
  • 普通元字符:代表本身意思的元字符
正则的修饰符(img)
  • i:ignoreCase 忽略大小写
  • m:multiline 匹配换行
  • g:global 全局匹配