美文网首页
正则表达式

正则表达式

作者: 楼水流云 | 来源:发表于2019-10-08 15:08 被阅读0次

    匹配一些规则的字符串 如用户注册账户的限制 "String".match(//) 正则使用方法
    构造 var reg = new RegExp("","")
    字面量 var reg = /zz/

    /abc/g /[abcd]/g 全局搜索匹配
    /abc/i 忽略大小写
    /abc/m 多行搜索 multiline 多行搜索 默认值是false

    元字符
    \t 水平制表符
    \r 回车符
    \n 换行符
    \f 换页符

    字符类
    [abc] 归类 表示可以匹配这类字符 代表一个
    [^] 不匹配 匹配任何字符 除去这几个之外
    [0-9a-zA-Z_] 匹配一个0到9 a到z A到Z 还有_任何都可以

    预定义类
    . [^\r\n] 除了回车和换行符之外的所有字符
    \d [0-9] 数字字符 || \D [^0-9] 非数字字符
    \s [\t\n\x0b\f\r] 空白符 || \S [^\t\n\x0b\f\r] 非空白字符
    \w [a-zA-Z_0-9] 单词字符、字母、数字下划线 || \W [^a-zA-Z_0-9]非单词字符

    边界字符
    /^/ 以hello开头 /^hello/
    // 以hello结尾 /hello/
    \b 单词边界 /hello worhellold hello/.match(/\bhello\b/g) 返回 ['hello' , 'hello'] || \B 非单词边界

    量词字符 匹配几次
    ? 出现零次或者一次(最多出现一次) 匹配不到也没关系 就不匹配了

    • 出现一次或者多次(至少出现一次) 匹配到了就一直往下匹配 直到又符合匹配规则
    • 出现零次或者多次(任意次)
      {n} 出现N次 出现几次
      {n,m} 出现N到M次 以多的算到m次 尽量多匹配最少一个
      {n,} 至少出现n次
      {,m} 至少出现m次
      {}? 在量词后面加?表示使用非贪婪模式 (尽可能少匹配)

    分组
    "hellohello".match(/(hello){2,3}/g) 分组匹配hello整体 不写()匹配的是0
    "hellohelloworldworld".match(/(hello|world){2,3}/g) 分组匹配hello整体|或world整体

    分组嵌套
    ((|%>)[\t]*)

    前瞻
    exp1(?=exp2) 匹配后面是exp2的exp1
    exp1(?!=exp2) 匹配后面不是exp2的exp1

    正则表达式方法 reg方法
    reg.test() 测试字符串 匹配上了true 否则false
    reg.exec('a1b2c3') 每次匹配到数组 相应下标

    字符串方法
    string.search(reg) 查找检索指定的子字符串 不支持全局匹配忽略g
    string.match(reg) 匹配到的内容拿出来 构成一个数组
    string.replace(reg,'hello || 或function(value){return value[0].toUpperCase()+value.substr(1)}) 匹配到之后 替换成所设定的值
    string.split(reg) 用正则表达式作为一个切割 /\d/ 就是用数字作为切割

    相关文章

      网友评论

          本文标题:正则表达式

          本文链接:https://www.haomeiwen.com/subject/qvqcpctx.html